composer require weew/http
$response = new HttpResponse();
$response->send();
HTTP/1.1 200 OK
Host: localhost
Connection: close
$response = new HttpResponse();
$response->setContent('<h1>Hello World!</h1>');
$response->send();
HTTP/1.1 200 OK
Host: localhost
Connection: close
content-type: text/html
<h1>Hello World!</h1>
$response = new HttpResponse(HttpStatusCode::UNAUTHORIZED);
// or
$response = new HttpResponse(401);
$response->send();
HTTP/1.1 401 Unauthorized
Host: localhost
Connection: close
$response = new HttpResponse();
$response->getHeaders()->set('foo', 'bar');
$response->send();
HTTP/1.1 200 OK
Host: localhost
Connection: close
foo: bar
$response = new HttpResponse();
$response->getQueuedCookies()->add(new Cookie('foo', 'bar'));
$response->send();
HTTP/1.1 200 OK
Host: localhost
Connection: close
set-cookie: foo=bar; path=/; httpOnly
$response = new HtmlResponse();
$response->setHtmlContent('<h1>Hello World!</h1>');
$response->send();
HTTP/1.1 200 OK
Host: localhost
Connection: close
content-type: text/html
<h1>Hello World!</h1>
$response = new JsonResponse();
$response->getData()->set('Hello', 'World!');
$response->send();
HTTP/1.1 200 OK
Host: localhost
Connection: close
content-type: application/json
{"Hello":"World!"}
$response = new BasicAuthResponse('Please login');
$response->send();
HTTP/1.1 200 OK
Host: localhost
Connection: close
www-authenticate: basic realm="Please login"
It is very easy to build a custom request.
$request = new HttpRequest(
HttpRequestMethod::POST,
new Url('http://example.com')
);
$request->setContent('foo=bar');
$request = new HttpRequest();
$request->getUrl()->getQuery()->set('foo', 'bar');
echo $request->getUrl()->getQuery();
// foo=bar
$request = new HttpRequest();
$request->getData()->set('foo', 'bar');
$request->getData()->set('bar', 'foo');
echo $request->getContent();
// foo=bar&bar=foo
You can access headers the same way as on the HttpResponse
class.
$request = new HttpRequest();
$request->getHeaders()->set('foo', 'bar');
$request->getHeaders()->add('foo', 'foo');
var_dump($request->getHeaders()->get('foo'));
// ['bar', 'foo']
echo $request->getHeaders()->find('foo');
// foo
Sometimes it is nice to have an object that would represent the current received http request.
$request = new CurrentRequest();
var_dump($request->toArray());
// all the data that the server received from the client
It is very easy to authenticate a request via basic auth.
$request = new HttpRequest();
$request->getBasicAuth()->setUsername('foo');
$request->getBasicAuth()->setPassword('bar');
echo $request->getBasicAuth()->getToken();
// Zm9vOmJhcg==
echo $request->getHeaders()->find('authentication');
// Basic Zm9vOmJhcg==
- URL: used throughout the project.
- HTTP Client: a simple http client that allows you to send and receive the standardized HttpRequest and HttpResponse objects.