|
| PHTTPClient (const PString &userAgentName=PString::Empty()) |
| Create a new HTTP client channel. More...
|
|
| ~PHTTPClient () |
|
bool | ConnectURL (const PURL &url) |
| Connect at transport level to remote, based on URL. More...
|
|
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). More...
|
|
int | ExecuteCommand (Commands cmd, const PURL &url, PMIMEInfo &outMIME, const PBYTEArray &dataBody, PMIMEInfo &replyMime) |
|
int | ExecuteCommand (Commands cmd, const PURL &url, PMIMEInfo &outMIME, ContentProcessor &processor, PMIMEInfo &replyMime) |
|
bool | WriteCommand (Commands cmd, const PString &url, PMIMEInfo &outMIME, ContentProcessor &processor) |
| Write a HTTP command to server. More...
|
|
bool | ReadResponse (PMIMEInfo &replyMIME) |
| Read a response from the server. More...
|
|
bool | ReadContentBody (PMIMEInfo &replyMIME, ContentProcessor &processor) |
| Read the body of the HTTP command. More...
|
|
bool | ReadContentBody (PMIMEInfo &replyMIME) |
| Read the body of the HTTP command, throwing it away. More...
|
|
bool | ReadContentBody (PMIMEInfo &replyMIME, PString &body) |
| Read the body of the HTTP command as a string. More...
|
|
bool | ReadContentBody (PMIMEInfo &replyMIME, PBYTEArray &body) |
| Read the body of the HTTP command as a binary block. More...
|
|
bool | GetDocument (const PURL &url, ContentProcessor &processor) |
| Start getting the document specified by the URL. More...
|
|
bool | GetDocument (const PURL &url, PMIMEInfo &outMIME, PMIMEInfo &replyMIME) |
| Start getting the document specified by the URL. More...
|
|
bool | GetDocument (const PURL &url, PMIMEInfo &replyMIME) |
|
bool | GetTextDocument (const PURL &url, PString &document, const PString &contentType=PString::Empty()) |
| Get the document specified by the URL. More...
|
|
bool | GetBinaryDocument (const PURL &url, PBYTEArray &document, const PString &contentType=PString::Empty()) |
| Get the document specified by the URL. More...
|
|
bool | GetHeader (const PURL &url, PMIMEInfo &outMIME, PMIMEInfo &replyMIME) |
| Get the header for the document specified by the URL. More...
|
|
bool | GetHeader (const PURL &url, PMIMEInfo &replyMIME) |
|
bool | PostData (const PURL &url, const PStringToString &data) |
| Post the "application/x-www-form-urlencoded" data specified to the URL. More...
|
|
bool | PostData (const PURL &url, const PStringToString &data, PMIMEInfo &replyMIME, PString &replyBody) |
| Post the "application/x-www-form-urlencoded" data specified to the URL. More...
|
|
bool | PostData (const PURL &url, PMIMEInfo &outMIME, const PString &data) |
| Post the data specified to the URL. More...
|
|
bool | PostData (const PURL &url, PMIMEInfo &outMIME, const PString &data, PMIMEInfo &replyMIME) |
| Start a post of the data specified to the URL. More...
|
|
bool | PostData (const PURL &url, PMIMEInfo &outMIME, const PString &data, PMIMEInfo &replyMIME, PString &replyBody) |
| Post the data specified to the URL. More...
|
|
bool | PutDocument (const PURL &url, const PString &document, const PString &contentType=PMIMEInfo::TextPlain(), const PMIMEInfo &mime=PMIMEInfo()) |
| Put the document specified by the URL. More...
|
|
bool | PutDocument (const PURL &url, const PBYTEArray &document, const PString &contentType, const PMIMEInfo &mime=PMIMEInfo()) |
| Put the document specified by the URL. More...
|
|
bool | PutDocument (const PURL &url, const PFilePath &document, const PString &contentType=PString::Empty(), const PMIMEInfo &mime=PMIMEInfo()) |
| Put the document specified by the URL. More...
|
|
bool | PutTextDocument (const PURL &url, const PString &document, const PString &contentType=PMIMEInfo::TextPlain()) |
|
bool | DeleteDocument (const PURL &url) |
| Delete the document specified by the URL. More...
|
|
void | SetAuthenticationInfo (const PString &userName, const PString &password) |
| Set authentication paramaters to be use for retreiving documents. More...
|
|
void | SetPersistent (bool persist=true) |
| Set persistent connection mode. More...
|
|
bool | GetPersistent () const |
| Get persistent connection mode. More...
|
|
void | SetMaxRedirects (unsigned maxRedirects) |
| Set max redirects on operation. More...
|
|
unsigned | GetMaxRedirects () const |
| Get max redirects on operation. More...
|
|
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 ¶m=PString::Empty()) |
| Write a single line for a command. More...
|
|
virtual bool | WriteCommand (PINDEX cmdNumber, const PString ¶m, 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 ¶m) |
|
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...
|
|
| PIndirectChannel () |
| Create a new indirect channel without any channels to redirect to. More...
|
|
| ~PIndirectChannel () |
| Close the indirect channel, deleting read/write channels if desired. More...
|
|
Comparison | Compare (const PObject &obj) const |
| Determine if the two objects refer to the same indirect channel. More...
|
|
virtual PString | GetName () const |
| Get the name of the channel. More...
|
|
virtual P_INT_PTR | GetHandle () const |
| Get the OS specific handle for the PSoundChannel. More...
|
|
virtual PBoolean | Close () |
| Close the channel. More...
|
|
virtual PBoolean | IsOpen () const |
| Determine if the channel is currently open and read and write operations can be executed on it. More...
|
|
virtual PBoolean | Shutdown (ShutdownValue option) |
| Close one or both of the data streams associated with a channel. More...
|
|
virtual bool | SetLocalEcho (bool localEcho) |
| Set local echo mode. More...
|
|
virtual PChannel * | GetBaseReadChannel () const |
| This function returns the eventual base channel for reading of a series of indirect channels provided by descendents of PIndirectChannel . More...
|
|
virtual PChannel * | GetBaseWriteChannel () const |
| This function returns the eventual base channel for writing of a series of indirect channels provided by descendents of PIndirectChannel . More...
|
|
virtual bool | CloseBaseReadChannel () |
| Close the base channel of channel indirection using PIndirectChannel. More...
|
|
virtual bool | CloseBaseWriteChannel () |
| Close the base channel of channel indirection using PIndirectChannel. More...
|
|
virtual PString | GetErrorText (ErrorGroup group=NumErrorGroups) const |
| Get error message description. More...
|
|
PBoolean | Open (PChannel &channel) |
| Set the channel for both read and write operations. More...
|
|
PBoolean | Open (PChannel *channel, PBoolean autoDelete=true) |
| Set the channel for both read and write operations. More...
|
|
PBoolean | Open (PChannel *readChannel, PChannel *writeChannel, PBoolean autoDeleteRead=true, PBoolean autoDeleteWrite=true) |
| Set the channel for both read and write operations. More...
|
|
PChannel * | Detach (ShutdownValue option=ShutdownReadAndWrite) |
| Detach without closing the read/write channel. More...
|
|
PChannel * | GetReadChannel () const |
| Get the channel used for read operations. More...
|
|
bool | SetReadChannel (PChannel *channel, bool autoDelete=true, bool closeExisting=false) |
| Set the channel for read operations. More...
|
|
PChannel * | GetWriteChannel () const |
| Get the channel used for write operations. More...
|
|
PBoolean | SetWriteChannel (PChannel *channel, bool autoDelete=true, bool closeExisting=false) |
| Set the channel for read operations. More...
|
|
template<class ChannelClass > |
ChannelClass * | FindChannel () |
| Locate a channel of a specific class in the indirect chain. More...
|
|
PBoolean | SetErrorValues (Errors errorCode, int osError, ErrorGroup group=LastGeneralError) |
| Set error values to those specified. More...
|
|
virtual PINDEX | HashFunction () const |
| Calculate a hash value for use in sets and dictionaries. More...
|
|
FILE * | FDOpen (const char *mode) |
| Re-open the device using the stdio library. More...
|
|
void | SetReadTimeout (const PTimeInterval &time) |
| Set the timeout for read operations. More...
|
|
PTimeInterval | GetReadTimeout () const |
| Get the timeout for read operations. More...
|
|
virtual PINDEX | GetLastReadCount () const |
| Get the number of bytes read by the last Read() call. More...
|
|
virtual PINDEX | SetLastReadCount (PINDEX count) |
|
PBoolean | ReadBlock (void *buf, PINDEX len) |
| Read len bytes into the buffer from the channel. More...
|
|
PString | ReadString (PINDEX len) |
| Read len character into a string from the channel. More...
|
|
void | SetWriteTimeout (const PTimeInterval &time) |
| Set the timeout for write operations to complete. More...
|
|
PTimeInterval | GetWriteTimeout () const |
| Get the timeout for write operations to complete. More...
|
|
virtual PBoolean | Write (const void *buf, PINDEX len, const void *) |
| Low level write to the channel with marker. More...
|
|
virtual PINDEX | GetLastWriteCount () const |
| Get the number of bytes written by the last Write() call. More...
|
|
virtual PINDEX | SetLastWriteCount (PINDEX count) |
|
PBoolean | WriteChar (int c) |
| Write a single character to the channel. More...
|
|
PBoolean | WriteString (const PString &str) |
| Write a string to the channel. More...
|
|
| ~PChannel () |
| Close down the channel. More...
|
|
Errors | GetErrorCode (ErrorGroup group=NumErrorGroups) const |
| Get normalised error code. More...
|
|
int | GetErrorNumber (ErrorGroup group=NumErrorGroups) const |
| Get OS errro code. More...
|
|
virtual bool | ReadAsync (AsyncContext &context) |
| Begin an asynchronous read from channel. More...
|
|
virtual void | OnReadComplete (AsyncContext &context) |
| User callback function for when a ReadAsync() call has completed or timed out. More...
|
|
virtual bool | WriteAsync (AsyncContext &context) |
| Begin an asynchronous write from channel. More...
|
|
virtual void | OnWriteComplete (AsyncContext &context) |
| User callback function for when a WriteAsync() call has completed or timed out. More...
|
|
virtual bool | FlowControl (const void *flowData) |
| Flow Control information Pass data to the channel for flowControl determination. More...
|
|
PBoolean | SetBufferSize (PINDEX newSize) |
| Set the iostream buffer size for reads and writes. More...
|
|
PBoolean | SendCommandString (const PString &command) |
| Send a command meta-string. More...
|
|
void | AbortCommandString () |
| Abort a command string that is in progress. More...
|
|
__inline unsigned | GetTraceContextIdentifier () const |
| Get PTRACE context identifier. More...
|
|
__inline void | SetTraceContextIdentifier (unsigned id) |
|
__inline void | SetTraceContextIdentifier (const PObject &obj) |
|
__inline void | SetTraceContextIdentifier (const PObject *obj) |
|
__inline void | CopyTraceContextIdentifier (PObject &obj) const |
|
__inline void | CopyTraceContextIdentifier (PObject *obj) const |
|
virtual | ~PObject () |
|
__inline const char * | GetClass () const |
|
__inline bool | IsClass (const char *name) const |
|
__inline const PObject * | PTraceObjectInstance () const |
|
virtual PObject * | Clone () const |
| Create a copy of the class on the heap. More...
|
|
template<class CLS > |
CLS * | CloneAs () const |
| As for Clone() but converts to specified type. More...
|
|
virtual Comparison | CompareObjectMemoryDirect (const PObject &obj) const |
| Determine the byte wise comparison of two objects. More...
|
|
bool | operator== (const PObject &obj) const |
| Compare the two objects. More...
|
|
bool | operator!= (const PObject &obj) const |
| Compare the two objects. More...
|
|
bool | operator< (const PObject &obj) const |
| Compare the two objects. More...
|
|
bool | operator> (const PObject &obj) const |
| Compare the two objects. More...
|
|
bool | operator<= (const PObject &obj) const |
| Compare the two objects. More...
|
|
bool | operator>= (const PObject &obj) const |
| Compare the two objects. More...
|
|
virtual void | PrintOn (ostream &strm) const |
| Output the contents of the object to the stream. More...
|
|
virtual void | ReadFrom (istream &strm) |
| Input the contents of the object from the stream. More...
|
|
|
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 & | UpgradeTag () |
|
static const PCaselessString & | WebSocketTag () |
|
static const PCaselessString & | WebSocketKeyTag () |
|
static const PCaselessString & | WebSocketAcceptTag () |
|
static const PCaselessString & | WebSocketProtocolTag () |
|
static const PCaselessString & | WebSocketVersionTag () |
|
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 () |
|
static const PCaselessString & | FormUrlEncoded () |
|
static PString | GetErrorText (Errors lastError, int osError=0) |
| Get error message description. More...
|
|
static __inline void | CopyTraceContextIdentifier (PObject &to, const PObject &from) |
|
static __inline void | CopyTraceContextIdentifier (PObject &to, const PObject *from) |
|
static __inline void | CopyTraceContextIdentifier (PObject *to, const PObject &from) |
|
static __inline void | CopyTraceContextIdentifier (PObject *to, const PObject *from) |
|
static __inline const char * | Class () |
|
static __inline const PObject * | PTraceObjectInstance (const char *) |
|
static __inline const PObject * | PTraceObjectInstance (const PObject *obj) |
|
template<typename T > |
static Comparison | Compare2 (T v1, T v2) |
| Compare two types, returning Comparison type. More...
|
|
static Comparison | InternalCompareObjectMemoryDirect (const PObject *obj1, const PObject *obj2, PINDEX size) |
| Internal function caled from CompareObjectMemoryDirect() More...
|
|
enum | StuffState {
DontStuff,
StuffIdle,
StuffCR,
StuffCRLF,
StuffCRLFdot,
StuffCRLFdotCR
} |
|
| 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...
|
|
| PInternetProtocol (const char *defaultServiceName, PINDEX cmdCount, char const *const *cmdNames) |
|
bool | SetLastResponse (int code, const PString &info, ErrorGroup group=LastGeneralError) |
|
virtual PBoolean | OnOpen () |
| This callback is executed when the Open() function is called with open channels. More...
|
|
| PDECLARE_READ_WRITE_MUTEX (channelPointerMutex) |
| Race condition prevention on closing channel. More...
|
|
| 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) |
|
bool | CheckNotOpen () |
|
virtual int | os_errno () const |
|
PBoolean | PXSetIOBlock (PXBlockType type, const PTimeInterval &timeout) |
|
P_INT_PTR | GetOSHandleAsInt () const |
|
int | PXClose () |
|
| PDECLARE_MUTEX (px_threadMutex) |
|
| PDECLARE_MUTEX (px_writeMutex) |
|
| PChannel () |
| Create the channel. More...
|
|
| PObject () |
| Constructor for PObject, made protected so cannot ever create one on its own. More...
|
|
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;