PTLib Version 2.12.9

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Static Public Member Functions | Protected Member Functions | List of all members
PHTTP Class Reference

    A common base class for TCP/IP socket for the HyperText Transfer Protocol

version 1.0 client and server. More...

`#include <http.h>`

Inheritance diagram for PHTTP:
[legend]
Collaboration diagram for PHTTP:
[legend]

## Public Types
enum | Commands { GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, CONNECT, NumCommands }
enum | StatusCode { BadResponse = 1, ContentProcessorError, UnknownTransferEncoding, Continue = 100, SwitchingProtocols, RequestOK = 200, Created, Accepted, NonAuthoritativeInformation, NoContent, ResetContent, PartialContent, MultipleChoices = 300, MovedPermanently, MovedTemporarily, SeeOther, NotModified, UseProxy, BadRequest = 400, UnAuthorised, PaymentRequired, Forbidden, NotFound, MethodNotAllowed, NoneAcceptable, ProxyAuthenticationRequired, RequestTimeout, Conflict, Gone, LengthRequired, UnlessTrue, InternalServerError = 500, NotImplemented, BadGateway, ServiceUnavailable, GatewayTimeout }

## Static Public Member Functions
static const PCaselessString & | HostTag ()
static const PCaselessString & | AllowTag ()
static const PCaselessString & | AuthorizationTag ()
static const PCaselessString & | ContentEncodingTag ()
static const PCaselessString & | ContentLengthTag ()
static const PCaselessString & | ContentTypeTag ()
static const PCaselessString & | DateTag ()
static const PCaselessString & | ExpiresTag ()
static const PCaselessString & | FromTag ()
static const PCaselessString & | IfModifiedSinceTag ()
static const PCaselessString & | LastModifiedTag ()
static const PCaselessString & | LocationTag ()
static const PCaselessString & | PragmaTag ()
static const PCaselessString & | PragmaNoCacheTag ()
static const PCaselessString & | RefererTag ()
static const PCaselessString & | ServerTag ()
static const PCaselessString & | UserAgentTag ()
static const PCaselessString & | WWWAuthenticateTag ()
static const PCaselessString & | MIMEVersionTag ()
static const PCaselessString & | ConnectionTag ()
static const PCaselessString & | KeepAliveTag ()
static const PCaselessString & | TransferEncodingTag ()
static const PCaselessString & | ChunkedTag ()
static const PCaselessString & | ProxyConnectionTag ()
static const PCaselessString & | ProxyAuthorizationTag ()
static const PCaselessString & | ProxyAuthenticateTag ()
static const PCaselessString & | ForwardedTag ()
static const PCaselessString & | SetCookieTag ()
static const PCaselessString & | CookieTag ()

## Protected Member Functions
| PHTTP ()
| Create a TCP/IP HTTP protocol channel. More...
| PHTTP (const char *defaultServiceName)
virtual PINDEX | ParseResponse (const PString &line)
| Parse a response line string into a response code and any extra info on the line. More...
Protected Member Functions inherited from PInternetProtocol
| PInternetProtocol (const char *defaultServiceName, PINDEX cmdCount, char const *const *cmdNames)
Protected Member Functions inherited from PIndirectChannel
virtual PBoolean | OnOpen ()
| This callback is executed when the Open() function is called with open channels. More...
Protected Member Functions inherited from PChannel
| PChannel (const PChannel &)
PChannel & | operator= (const PChannel &)
virtual PBoolean | ConvertOSError (P_INT_PTR libcReturnValue, ErrorGroup group=LastGeneralError)
| Convert an operating system error into platform independent error. More...
int | ReadCharWithTimeout (PTimeInterval &timeout)
| Read a character with specified timeout. More...
PBoolean | ReceiveCommandString (int nextChar, const PString &reply, PINDEX &pos, PINDEX start)
PBoolean | PXSetIOBlock (PXBlockType type, const PTimeInterval &timeout)
P_INT_PTR | GetOSHandleAsInt () const
int | PXClose ()
| PChannel ()
| Create the channel. More...
Protected Member Functions inherited from PObject
| PObject ()
| Constructor for PObject, made protected so cannot ever create one on its own. More...

## Additional Inherited Members
Public Member Functions inherited from PInternetProtocol
virtual PBoolean | Read (void *buf, PINDEX len)
| Low level read from the channel. More...
virtual int | ReadChar ()
| Read a single 8 bit byte from the channel. More...
virtual PBoolean | Write (const void *buf, PINDEX len)
| Low level write to the channel. More...
void | SetReadLineTimeout (const PTimeInterval &t)
| Set the maximum timeout between characters within a line. More...
virtual PBoolean | Connect (const PString &address, WORD port=0)
| Connect a socket to a remote host for the internet protocol. More...
virtual PBoolean | Connect (const PString &address, const PString &service)
virtual PBoolean | Accept (PSocket &listener)
| Accept a server socket to a remote host for the internet protocol. More...
const PString & | GetDefaultService () const
| Get the default service name or port number to use in socket connections. More...
PIPSocket * | GetSocket () const
| Get the eventual socket for the series of indirect channels that may be between the current protocol and the actual I/O channel. More...
virtual PBoolean | WriteLine (const PString &line)
| Write a string to the socket channel followed by a CR/LF pair. More...
virtual PBoolean | ReadLine (PString &line, PBoolean allowContinuation=false)
| Read a string from the socket channel up to a CR/LF pair. More...
virtual void | UnRead (int ch)
| Put back the characters into the data stream so that the next Read() function call will return them first. More...
virtual void | UnRead (const PString &str)
virtual void | UnRead (const void *buffer, PINDEX len)
virtual bool | WriteCommand (PINDEX cmdNumber, const PString &param=PString::Empty())
| Write a single line for a command. More...
virtual bool | WriteCommand (PINDEX cmdNumber, const PString &param, const PMIMEInfo &mime)
virtual PBoolean | ReadCommand (PINDEX &num, PString &args)
| Read a single line of a command which ends with a CR/LF pair. More...
virtual PBoolean | ReadCommand (PINDEX &num, PString &args, PMIMEInfo &mime)
virtual PBoolean | WriteResponse (unsigned numericCode, const PString &info)
| Write a response code followed by a text string describing the response to a command. More...
virtual PBoolean | WriteResponse (const PString &code, const PString &info)
virtual PBoolean | ReadResponse ()
| Read a response code followed by a text string describing the response to a command. More...
virtual PBoolean | ReadResponse (int &code, PString &info)
virtual PBoolean | ReadResponse (int &code, PString &info, PMIMEInfo &mime)
virtual int | ExecuteCommand (PINDEX cmdNumber)
| Write a command to the socket, using `WriteCommand()` and await a response using `ReadResponse()`. More...
virtual int | ExecuteCommand (PINDEX cmdNumber, const PString &param)
int | GetLastResponseCode () const
| Return the code associated with the last response received by the socket. More...
PString | GetLastResponseInfo () const
| Return the last response received by the socket. More...
Protected Types inherited from PInternetProtocol
enum | StuffState { DontStuff, StuffIdle, StuffCR, StuffCRLF, StuffCRLFdot, StuffCRLFdotCR }
Protected Attributes inherited from PInternetProtocol
PString | defaultServiceName
PStringArray | commandNames
PCharArray | unReadBuffer
PINDEX | unReadCount
PTimeInterval | readLineTimeout
enum PInternetProtocol::StuffState | stuffingState
PBoolean | newLineToCRLF
int | lastResponseCode
PString | lastResponseInfo
Friends inherited from PObject

## Detailed Description

    A common base class for TCP/IP socket for the HyperText Transfer Protocol

version 1.0 client and server.

## Member Enumeration Documentation

enum PHTTP::Commands

Enumerator
GET |
HEAD |
POST |
PUT |
DELETE |
TRACE |
OPTIONS |
CONNECT |
NumCommands |

enum PHTTP::StatusCode

Enumerator
BadResponse | 1 = response is malformed
ContentProcessorError | Content Processer returned error.
UnknownTransferEncoding | Unknown "Transfer-Encoding" extension.
Continue | 100 - Continue
SwitchingProtocols | 101 - upgrade allowed
RequestOK | 200 - request has succeeded
Created | 201 - new resource created: entity body contains URL
Accepted | 202 - request accepted, but not yet completed
NonAuthoritativeInformation | 203 - not definitive entity header
NoContent | 204 - no new information
ResetContent | 205 - contents have been reset
PartialContent | 206 - partial GET succeeded
MultipleChoices | 300 - requested resource available elsewehere
MovedPermanently | 301 - resource moved permanently: location field has new URL
MovedTemporarily | 302 - resource moved temporarily: location field has new URL
SeeOther | 303 - see other URL
NotModified | 304 - document has not been modified
UseProxy | 305 - proxy redirect
BadRequest | 400 - request malformed or not understood
UnAuthorised | 401 - request requires authentication
PaymentRequired | 402 - reserved
Forbidden | 403 - request is refused due to unsufficient authorisation
NotFound | 404 - resource cannot be found
MethodNotAllowed | 405 - not allowed on this resource
NoneAcceptable | 406 - encoding not acceptable
ProxyAuthenticationRequired | 407 - must authenticate with proxy first
RequestTimeout | 408 - server timeout on request
Conflict | 409 - resource conflict on action
Gone | 410 - resource gone away
LengthRequired | 411 - no Content-Length
UnlessTrue | 412 - no Range header for true Unless
InternalServerError | 500 - server has encountered an unexpected error
NotImplemented | 501 - server does not implement request
BadGateway | 502 - error whilst acting as gateway
ServiceUnavailable | 503 - server temporarily unable to service request
GatewayTimeout | 504 - timeout whilst talking to gateway

## Constructor & Destructor Documentation

PHTTP::PHTTP | ( |  | ) |
| protected

Create a TCP/IP HTTP protocol channel.

PHTTP::PHTTP | ( | const char * | defaultServiceName | ) |
| protected

Parameters

  defaultServiceName | Service name for the protocol.

## Member Function Documentation

static const PCaselessString& PHTTP::AllowTag | ( |  | ) |
| static

static const PCaselessString& PHTTP::AuthorizationTag | ( |  | ) |
| static

static const PCaselessString& PHTTP::ChunkedTag | ( |  | ) |
| static

static const PCaselessString& PHTTP::ConnectionTag | ( |  | ) |
| static

static const PCaselessString& PHTTP::ContentEncodingTag | ( |  | ) |
| static

static const PCaselessString& PHTTP::ContentLengthTag | ( |  | ) |
| static

static const PCaselessString& PHTTP::ContentTypeTag | ( |  | ) |
| inline static

References PMIMEInfo::ContentTypeTag().

static const PCaselessString& PHTTP::CookieTag | ( |  | ) |
| static

static const PCaselessString& PHTTP::DateTag | ( |  | ) |
| static

static const PCaselessString& PHTTP::ExpiresTag | ( |  | ) |
| static

static const PCaselessString& PHTTP::ForwardedTag | ( |  | ) |
| static

static const PCaselessString& PHTTP::FromTag | ( |  | ) |
| static

static const PCaselessString& PHTTP::HostTag | ( |  | ) |
| static

static const PCaselessString& PHTTP::IfModifiedSinceTag | ( |  | ) |
| static

static const PCaselessString& PHTTP::KeepAliveTag | ( |  | ) |
| static

static const PCaselessString& PHTTP::LastModifiedTag | ( |  | ) |
| static

static const PCaselessString& PHTTP::LocationTag | ( |  | ) |
| static

static const PCaselessString& PHTTP::MIMEVersionTag | ( |  | ) |
| static

virtual PINDEX PHTTP::ParseResponse | ( | const PString & | line | ) |
| protected virtual

Parse a response line string into a response code and any extra info on the line.

Results are placed into the member variables `lastResponseCode` and `lastResponseInfo`.

The default bahaviour looks for a space or a '-' and splits the code and info either side of that character, then returns false.

Returns
  Position of continuation character in response, 0 if no continuation lines are possible.

Parameters

  line | Input response line to be parsed

Reimplemented from PInternetProtocol.

static const PCaselessString& PHTTP::PragmaNoCacheTag | ( |  | ) |
| static

static const PCaselessString& PHTTP::PragmaTag | ( |  | ) |
| static

static const PCaselessString& PHTTP::ProxyAuthenticateTag | ( |  | ) |
| static

static const PCaselessString& PHTTP::ProxyAuthorizationTag | ( |  | ) |
| static

static const PCaselessString& PHTTP::ProxyConnectionTag | ( |  | ) |
| static

static const PCaselessString& PHTTP::RefererTag | ( |  | ) |
| static

static const PCaselessString& PHTTP::ServerTag | ( |  | ) |
| static

static const PCaselessString& PHTTP::SetCookieTag | ( |  | ) |
| static

static const PCaselessString& PHTTP::TransferEncodingTag | ( |  | ) |
| static

static const PCaselessString& PHTTP::UserAgentTag | ( |  | ) |
| static

static const PCaselessString& PHTTP::WWWAuthenticateTag | ( |  | ) |
| static

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

- http.h