PHTTPClient Class Reference

A TCP/IP socket for the HyperText Transfer Protocol version 1.0. More...

#include <http.h>

Inheritance diagram for PHTTPClient:

PHTTP PInternetProtocol PIndirectChannel PChannel PObject List of all members.

Public Member Functions

 PHTTPClient (const PString &userAgentName=PString::Empty())
 Create a new HTTP client channel.
int ExecuteCommand (Commands cmd, const PURL &url, PMIMEInfo &outMIME, const PString &dataBody, PMIMEInfo &replyMime)
 Send a command and wait for the response header (including MIME fields).
int ExecuteCommand (const PString &cmdName, const PURL &url, PMIMEInfo &outMIME, const PString &dataBody, PMIMEInfo &replyMime)
PBoolean WriteCommand (Commands cmd, const PString &url, PMIMEInfo &outMIME, const PString &dataBody)
 Write a HTTP command to server.
PBoolean WriteCommand (const PString &cmdName, const PString &url, PMIMEInfo &outMIME, const PString &dataBody)
PBoolean ReadResponse (PMIMEInfo &replyMIME)
 Read a response from the server.
PBoolean ReadContentBody (PMIMEInfo &replyMIME, PBYTEArray &body)
 Read the body of the HTTP command.
PBoolean ReadContentBody (PMIMEInfo &replyMIME, PString &body)
PBoolean GetTextDocument (const PURL &url, PString &document, const PString &contentType=PString::Empty())
 Get the document specified by the URL.
PBoolean GetDocument (const PURL &url, PMIMEInfo &outMIME, PMIMEInfo &replyMIME)
 Get the document specified by the URL.
PBoolean GetHeader (const PURL &url, PMIMEInfo &outMIME, PMIMEInfo &replyMIME)
 Get the header for the document specified by the URL.
PBoolean PostData (const PURL &url, PMIMEInfo &outMIME, const PString &data, PMIMEInfo &replyMIME)
 Post the data specified to the URL.
PBoolean PostData (const PURL &url, PMIMEInfo &outMIME, const PString &data, PMIMEInfo &replyMIME, PString &replyBody)
 Post the data specified to the URL.
bool PutTextDocument (const PURL &url, const PString &document, const PString &contentType="text/plain")
 Put the document specified by the URL.
bool PutDocument (const PURL &url, PMIMEInfo &outMIME, PMIMEInfo &replyMIME)
 Put the document specified by the URL.
bool DeleteDocument (const PURL &url)
 Delete the document specified by the URL.
void SetAuthenticationInfo (const PString &userName, const PString &password)
 Set authentication paramaters to be use for retreiving documents.
void SetPersistent (bool persist=true)
 Set persistent connection mode.
bool GetPersistent () const
 Get persistent connection mode.

Protected Member Functions

PBoolean AssureConnect (const PURL &url, PMIMEInfo &outMIME)
bool InternalReadContentBody (PMIMEInfo &replyMIME, PAbstractArray *body)

Protected Attributes

PString m_userAgentName
bool m_persist
PString m_userName
PString m_password
PHTTPClientAuthenticationm_authentication

Detailed Description

A TCP/IP socket for the HyperText Transfer Protocol version 1.0.

When acting as a client, the procedure is to make the connection to a remote server, then to retrieve a document using the following procedure:


      PHTTPSocket web("webserver");
      if (web.IsOpen()) {
        PINDEX len;
        if (web.GetDocument("http://www.someone.com/somewhere/url", len)) {
          PString html = web.ReadString(len);
          if (!html.IsEmpty())
            ProcessHTML(html);
        }
        else
           PError << "Could not get page." << endl;
      }
      else
         PError << "HTTP conection failed." << endl;
      


Constructor & Destructor Documentation

PHTTPClient::PHTTPClient ( const PString userAgentName = PString::Empty()  ) 

Create a new HTTP client channel.


Member Function Documentation

PBoolean PHTTPClient::AssureConnect ( const PURL url,
PMIMEInfo outMIME 
) [protected]

bool PHTTPClient::DeleteDocument ( const PURL url  ) 

Delete the document specified by the URL.

Returns:
true if document is deleted.
Parameters:
url  Universal Resource Locator for document.

int PHTTPClient::ExecuteCommand ( const PString cmdName,
const PURL url,
PMIMEInfo outMIME,
const PString dataBody,
PMIMEInfo replyMime 
)

int PHTTPClient::ExecuteCommand ( Commands  cmd,
const PURL url,
PMIMEInfo outMIME,
const PString dataBody,
PMIMEInfo replyMime 
)

Send a command and wait for the response header (including MIME fields).

Note that a body may still be on its way even if lasResponseCode is not 200!

Returns:
true if all of header returned and ready to receive body.

PBoolean PHTTPClient::GetDocument ( const PURL url,
PMIMEInfo outMIME,
PMIMEInfo replyMIME 
)

Get the document specified by the URL.

Returns:
true if document is being transferred.
Parameters:
url  Universal Resource Locator for document.
outMIME  MIME info in request
replyMIME  MIME info in response

PBoolean PHTTPClient::GetHeader ( const PURL url,
PMIMEInfo outMIME,
PMIMEInfo replyMIME 
)

Get the header for the document specified by the URL.

Returns:
true if document header is being transferred.
Parameters:
url  Universal Resource Locator for document.
outMIME  MIME info in request
replyMIME  MIME info in response

bool PHTTPClient::GetPersistent (  )  const [inline]

Get persistent connection mode.

PBoolean PHTTPClient::GetTextDocument ( const PURL url,
PString document,
const PString contentType = PString::Empty() 
)

Get the document specified by the URL.

An empty string for the contentType parameter means that any content type is acceptable.

Returns:
true if document is being transferred.
Parameters:
url  Universal Resource Locator for document.
document  Body read
contentType  Content-Type header to expect

bool PHTTPClient::InternalReadContentBody ( PMIMEInfo replyMIME,
PAbstractArray body 
) [protected]

PBoolean PHTTPClient::PostData ( const PURL url,
PMIMEInfo outMIME,
const PString data,
PMIMEInfo replyMIME,
PString replyBody 
)

Post the data specified to the URL.

Returns:
true if document is being transferred.
Parameters:
url  Universal Resource Locator for document.
outMIME  MIME info in request
data  Information posted to the HTTP server.
replyMIME  MIME info in response
replyBody  Body of response

PBoolean PHTTPClient::PostData ( const PURL url,
PMIMEInfo outMIME,
const PString data,
PMIMEInfo replyMIME 
)

Post the data specified to the URL.

Returns:
true if document is being transferred.
Parameters:
url  Universal Resource Locator for document.
outMIME  MIME info in request
data  Information posted to the HTTP server.
replyMIME  MIME info in response

bool PHTTPClient::PutDocument ( const PURL url,
PMIMEInfo outMIME,
PMIMEInfo replyMIME 
)

Put the document specified by the URL.

Returns:
true if document is being transferred.
Parameters:
url  Universal Resource Locator for document.
outMIME  MIME info in request
replyMIME  MIME info in response

bool PHTTPClient::PutTextDocument ( const PURL url,
const PString document,
const PString contentType = "text/plain" 
)

Put the document specified by the URL.

Returns:
true if document is being transferred.
Parameters:
url  Universal Resource Locator for document.
document  Body read
contentType  Content-Type header to use

PBoolean PHTTPClient::ReadContentBody ( PMIMEInfo replyMIME,
PString body 
)

PBoolean PHTTPClient::ReadContentBody ( PMIMEInfo replyMIME,
PBYTEArray body 
)

Read the body of the HTTP command.

PBoolean PHTTPClient::ReadResponse ( PMIMEInfo replyMIME  ) 

Read a response from the server.

void PHTTPClient::SetAuthenticationInfo ( const PString userName,
const PString password 
)

Set authentication paramaters to be use for retreiving documents.

void PHTTPClient::SetPersistent ( bool  persist = true  )  [inline]

Set persistent connection mode.

PBoolean PHTTPClient::WriteCommand ( const PString cmdName,
const PString url,
PMIMEInfo outMIME,
const PString dataBody 
)

PBoolean PHTTPClient::WriteCommand ( Commands  cmd,
const PString url,
PMIMEInfo outMIME,
const PString dataBody 
)

Write a HTTP command to server.


Member Data Documentation

PHTTPClientAuthentication* PHTTPClient::m_authentication [protected]

PString PHTTPClient::m_password [protected]

bool PHTTPClient::m_persist [protected]

PString PHTTPClient::m_userAgentName [protected]

PString PHTTPClient::m_userName [protected]


The documentation for this class was generated from the following file:
Generated on Fri Oct 14 01:44:11 2011 for PTLib by  doxygen 1.4.7