HTTP protocol support for the XP Framework

v10.3.0 2024-03-24 11:57 UTC

README

Build status on GitHub XP Framework Module BSD Licence Requires PHP 7.0+ Supports PHP 8.0+ Latest Stable Version

Implements HTTP (HyperText Transfer Protocol) and provides a client to interact with HTTP servers. The HttpConnection is the entry point class.

Methods

Different request methods are handled by HttpConnection class methods as follows:

  • GET - via get()
  • POST - via post()
  • HEAD - via head()
  • PUT - via put()
  • PATCH - via patch()
  • DELETE - via delete()
  • OPTIONS - via options()
  • TRACE - via trace()

Other methods (e.g. MKCOL from WebDAV) are supported via request().

Headers

The following code will show the response headers for a HEAD request:

use peer\http\HttpConnection;

$c= new HttpConnection('http://xp-framework.net/');
Console::writeLine($c->head());

Getting data

with ($c= new HttpConnection('http://xp-framework.net/')); {
  $response= $c->get();
  Console::writeLine('Response: ', $response);
  
  $in= $response->in();
  while ($in->available()) {
    $bytes= $in->read();
  }
}

SSL support

This API also supports SSL connections - based on the scheme given to HttpConnection's constructor the HttpRequestFactory class will create an SSL connection. This is transparent from the outside, the rest of the calls are the same!

Example:

$c= new HttpConnection('https://example.com/');

Note: SSL connections depend on either the PHP extension curl or openssl.