Classes | Public Member Functions | List of all members
cpp3ds::Http Class Reference

A HTTP client. More...

#include <Http.hpp>

Inheritance diagram for cpp3ds::Http:
cpp3ds::NonCopyable

Classes

class  Request
 Define a HTTP request. More...
 
class  Response
 Define a HTTP response. More...
 

Public Member Functions

 Http ()
 Default constructor. More...
 
 Http (const std::string &host, unsigned short port=0)
 Construct the HTTP client with the target host. More...
 
void setHost (const std::string &host, unsigned short port=0)
 Set the target host. More...
 
Response sendRequest (const Request &request, Time timeout=Time::Zero)
 Send a HTTP request and return the server's response. More...
 

Detailed Description

A HTTP client.

cpp3ds::Http is a very simple HTTP client that allows you to communicate with a web server.

You can retrieve web pages, send data to an interactive resource, download a remote file, etc. The HTTPS protocol is not supported.

The HTTP client is split into 3 classes:

cpp3ds::Http::Request builds the request that will be sent to the server. A request is made of:

cpp3ds::Http::Response parse the response from the web server and provides getters to read them. The response contains:

cpp3ds::Http provides a simple function, SendRequest, to send a cpp3ds::Http::Request and return the corresponding cpp3ds::Http::Response from the server.

Usage example:

// Create a new HTTP client
// We'll work on http://www.sfml-dev.org
http.setHost("http://www.sfml-dev.org");
// Prepare a request to get the 'features.php' page
cpp3ds::Http::Request request("features.php");
// Send the request
cpp3ds::Http::Response response = http.sendRequest(request);
// Check the status code and display the result
{
std::cout << response.getBody() << std::endl;
}
else
{
std::cout << "Error " << status << std::endl;
}

Definition at line 45 of file Http.hpp.

Constructor & Destructor Documentation

cpp3ds::Http::Http ( )

Default constructor.

cpp3ds::Http::Http ( const std::string &  host,
unsigned short  port = 0 
)

Construct the HTTP client with the target host.

This is equivalent to calling setHost(host, port). The port has a default value of 0, which means that the HTTP client will use the right port according to the protocol used (80 for HTTP). You should leave it like this unless you really need a port other than the standard one, or use an unknown protocol.

Parameters
hostWeb server to connect to
portPort to use for connection

Member Function Documentation

Response cpp3ds::Http::sendRequest ( const Request request,
Time  timeout = Time::Zero 
)

Send a HTTP request and return the server's response.

You must have a valid host before sending a request (see setHost). Any missing mandatory header field in the request will be added with an appropriate value. Warning: this function waits for the server's response and may not return instantly; use a thread if you don't want to block your application, or use a timeout to limit the time to wait. A value of Time::Zero means that the client will use the system default timeout (which is usually pretty long).

Parameters
requestRequest to send
timeoutMaximum time to wait
Returns
Server's response
void cpp3ds::Http::setHost ( const std::string &  host,
unsigned short  port = 0 
)

Set the target host.

This function just stores the host address and port, it doesn't actually connect to it until you send a request. The port has a default value of 0, which means that the HTTP client will use the right port according to the protocol used (80 for HTTP). You should leave it like this unless you really need a port other than the standard one, or use an unknown protocol.

Parameters
hostWeb server to connect to
portPort to use for connection

The documentation for this class was generated from the following file: