Client Class Reference

#include <Pt/Http/Client.h>

An HTTP client. More...

Inherits Connectable, and NonCopyable.

Public Member Functions

 Client ()
 Default Constructor.
 
 Client (const Net::Endpoint &ep)
 Construct with host to connect to.
 
 Client (System::EventLoop &loop)
 Construct with event loop.
 
 Client (System::EventLoop &loop, const Net::Endpoint &ep)
 Construct with loop and host to connect to.
 
 ~Client ()
 Destructor.
 
void beginReceive ()
 Begin receiving the reply.
 
void beginSend (bool finished=true)
 Begin sending the request.
 
void close ()
 Closes the connection and cancels all operations.
 
MessageProgress endReceive ()
 End receiving the reply.
 
MessageProgress endSend ()
 End sending the request.
 
const Net::Endpointhost () const
 Returns the host to connect to.
 
System::EventLooploop () const
 Returns the used event loop.
 
std::istream & receive ()
 Blocks until reply is received.
 
Replyreply ()
 Returns the received reply.
 
const Replyreply () const
 Returns the received reply.
 
Signal< Client & > & replyReceived ()
 Signals that a part of the reply was received.
 
Requestrequest ()
 Returns the request to send.
 
const Requestrequest () const
 Returns the request to send.
 
Signal< Client & > & requestSent ()
 Signals that a part of the request was sent.
 
void send (bool finished=true)
 Blocks until request is sent.
 
void setActive (System::EventLoop &loop)
 Sets the event loop to use.
 
void setHost (const Net::Endpoint &ep)
 Set host to connect to.
 
void setHost (const Net::Endpoint &ep, const Net::TcpSocketOptions &opts)
 Set host to connect to.
 
void setPeerName (const std::string &peer)
 Set expected SSL peer name.
 
void setSecure (Ssl::Context &ctx)
 Enable to use HTTPS.
 
void setTimeout (std::size_t timeout)
 Set timeout for I/O operations.
 

Detailed Description

A connection will be persistent (keep-alive), if the request headers contains the keep-alive header fields. A persistent connection is needed for HTTP request pipelining. Once all requests have been made, the client should be closed, otherwise it may run into the servers keep-alive timeout, if the client is used again later.

// use client for multiple requests
...
// close the persistent connection
client.close();