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 ()
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