ZenLib
Classes | Macros | Typedefs | Functions
HTTPClient.h File Reference
#include "HTTPClientWrapper.h"
#include "HTTPClientCommon.h"

Go to the source code of this file.

Classes

struct  _HTTP_PARAM
 
struct  _HTTP_CONNECTION
 
struct  _HTTP_URL
 
struct  _HTTP_HEADERS
 
struct  _HTTP_HEADERS_INFO
 
struct  _HTTP_AUTH_HEADER
 
struct  _HTTP_PROXY
 
struct  _HTTP_CREDENTIALS
 
struct  _HTTP_COUNTERS
 
struct  _HTTP_REQUEST
 

Macros

#define HTTP_CLIENT_VERSION_MINOR   0
 
#define HTTP_CLIENT_VERSION_MAJOR   1
 
#define HTTP_CLIENT_MAX_SEND_RECV_HEADERS   1024
 
#define HTTP_CLIENT_INIT_SEND_RECV_HEADERS   2048
 
#define HTTP_CLIENT_MAX_USERNAME_LENGTH   16
 
#define HTTP_CLIENT_MAX_PASSWORD_LENGTH   16
 
#define HTTP_CLIENT_MAX_64_ENCODED_CRED   ((HTTP_CLIENT_MAX_USERNAME_LENGTH + HTTP_CLIENT_MAX_PASSWORD_LENGTH) * 2) + 4
 
#define HTTP_CLIENT_MAX_CHUNK_HEADER   64
 
#define HTTP_CLIENT_MAX_PROXY_HOST_LENGTH   64
 
#define HTTP_CLIENT_MAX_TOKEN_LENGTH   512
 
#define HTTP_CLIENT_MAX_TOKEN_NAME_LENGTH   32
 
#define HTTP_CLIENT_MAX_HEADER_SEARCH_CLUE   1024
 
#define HTTP_CLIENT_ALLOW_HEAD_VERB   0
 
#define HTTP_CLIENT_MEMORY_RESIZABLE   FALSE
 
#define HTTP_CLIENT_MEMORY_RESIZE_FACTOR   16
 
#define HTTP_CLIENT_DEFAULT_PORT   80
 
#define HTTP_CLIENT_DEFAULT_SSL_PORT   443
 
#define HTTP_CLIENT_DEFAULT_VERB   0
 
#define HTTP_CLIENT_DEFAULT_VER   "HTTP/1.1"
 
#define HTTP_CLIENT_DEFAULT_PROXY_VER   "HTTP/1.0"
 
#define HTTP_CLIENT_DEFAULT_AGENT   "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)"
 
#define HTTP_CLIENT_DEFAULT_TIMEOUT   30
 
#define HTTP_CLIENT_DEFAULT_KEEP_ALIVE   30
 
#define HTTP_CLIENT_DEFAULT_DIGEST_AUTH   "MD5"
 
#define HTTP_CLIENT_DEFAULT_PROXY_AUTH   1
 
#define HTTP_CLIENT_CRLF   "\r\n"
 
#define HTTP_CLIENT_CRLFX2   "\r\n\r\n"
 
#define HTTP_CLIENT_FLAG_SECURE   0x00000010
 
#define HTTP_CLIENT_FLAG_URLANDPORT   0x00000020
 
#define HTTP_CLIENT_FLAG_URLHTTPS   0x00000040
 
#define HTTP_CLIENT_FLAG_USINGPROXY   0x00000080
 
#define HTTP_CLIENT_FLAG_CHUNKED   0x00000100
 
#define HTTP_STATUS_OK   200
 
#define HTTP_STATUS_UNAUTHORIZED   401
 
#define HTTP_STATUS_PROXY_AUTHENTICATION_REQUIRED   407
 
#define HTTP_STATUS_OBJECT_MOVED   302
 
#define HTTP_STATUS_OBJECT_MOVED_PERMANENTLY   301
 
#define HTTP_STATUS_CONTINUE   100
 
#define MIN(a, b)   (((a) < (b)) ? (a) : (b))
 
#define MAX(a, b)   (((a) > (b)) ? (a) : (b))
 
#define HTTP_TIMEOUT(nTimeout)   (((nTimeout) > (0)) ? (nTimeout) : (HTTP_CLIENT_DEFAULT_TIMEOUT))
 
#define ALIGN(size)   ((size & 0xfffffffc) + ((size & 3) ? 4 : 0))
 

Typedefs

typedef struct _HTTP_PARAM HTTP_PARAM
 
typedef struct _HTTP_CONNECTION HTTP_CONNECTION
 
typedef struct _HTTP_URL HTTP_URL
 
typedef struct _HTTP_HEADERS HTTP_HEADERS
 
typedef struct _HTTP_HEADERS_INFO HTTP_HEADERS_INFO
 
typedef struct _HTTP_AUTH_HEADER HTTP_AUTH_HEADER
 
typedef struct _HTTP_PROXY HTTP_PROXY
 
typedef struct _HTTP_CREDENTIALS HTTP_CREDENTIALS
 
typedef struct _HTTP_COUNTERS HTTP_COUNTERS
 
typedef struct _HTTP_REQUEST HTTP_SESSION
 
typedef struct _HTTP_REQUESTP_HTTP_SESSION
 
typedef UINT32 HTTP_SESSION_HANDLE
 
typedef UINT32 HTTP_CLIENT_SESSION_FLAGS
 

Functions

HTTP_SESSION_HANDLE HTTPClientOpenRequest (HTTP_CLIENT_SESSION_FLAGS Flags)
 
UINT32 HTTPClientCloseRequest (HTTP_SESSION_HANDLE *pSession)
 
UINT32 HTTPClientSetLocalConnection (HTTP_SESSION_HANDLE pSession, UINT32 nPort)
 
UINT32 HTTPClientSetAuth (HTTP_SESSION_HANDLE pSession, HTTP_AUTH_SCHEMA AuthSchema, void *pReserved)
 
UINT32 HTTPClientSetCredentials (HTTP_SESSION_HANDLE pSession, CHAR *pUserName, CHAR *pPassword)
 
UINT32 HTTPClientSetProxy (HTTP_SESSION_HANDLE pSession, CHAR *pProxyName, UINT16 nPort, CHAR *pUserName, CHAR *pPassword)
 
UINT32 HTTPClientSetVerb (HTTP_SESSION_HANDLE pSession, HTTP_VERB HttpVerb)
 
UINT32 HTTPClientAddRequestHeaders (HTTP_SESSION_HANDLE pSession, CHAR *pHeaderName, CHAR *pHeaderData, BOOL nInsert)
 
UINT32 HTTPClientSendRequest (HTTP_SESSION_HANDLE pSession, CHAR *pUrl, VOID *pData, UINT32 nDataLength, BOOL TotalLength, UINT32 nTimeout, UINT32 nClientPort)
 
UINT32 HTTPClientWriteData (HTTP_SESSION_HANDLE pSession, VOID *pBuffer, UINT32 nBufferLength, UINT32 nTimeout)
 
UINT32 HTTPClientRecvResponse (HTTP_SESSION_HANDLE pSession, UINT32 nTimeout)
 
UINT32 HTTPClientReadData (HTTP_SESSION_HANDLE pSession, VOID *pBuffer, UINT32 nBytesToRead, UINT32 nTimeout, UINT32 *nBytesRecived)
 
UINT32 HTTPClientGetInfo (HTTP_SESSION_HANDLE pSession, HTTP_CLIENT *HTTPClient)
 
UINT32 HTTPClientFindFirstHeader (HTTP_SESSION_HANDLE pSession, CHAR *pSearchClue, CHAR *pHeaderBuffer, UINT32 *nLength)
 
UINT32 HTTPClientGetNextHeader (HTTP_SESSION_HANDLE pSession, CHAR *pHeaderBuffer, UINT32 *nLength)
 
UINT32 HTTPClientFindCloseHeader (HTTP_SESSION_HANDLE pSession)
 
UINT32 HTTPIntrnResizeBuffer (P_HTTP_SESSION pHTTPSession, UINT32 nNewSize)
 
UINT32 HTTPIntrnSetURL (P_HTTP_SESSION pHTTPSession, CHAR *pUrl, UINT32 nUrlLength)
 
UINT32 HTTPIntrnConnectionClose (P_HTTP_SESSION pHTTPSession)
 
UINT32 HTTPIntrnConnectionOpen (P_HTTP_SESSION pHTTPSession)
 
UINT32 HTTPIntrnGetRemoteHeaders (P_HTTP_SESSION pHTTPSession)
 
UINT32 HTTPIntrnGetRemoteChunkLength (P_HTTP_SESSION pHTTPSession)
 
UINT32 HTTPIntrnSend (P_HTTP_SESSION pHTTPSession, CHAR *pData, UINT32 *nLength)
 
UINT32 HTTPIntrnRecv (P_HTTP_SESSION pHTTPSession, CHAR *pData, UINT32 *nLength, BOOL PeekOnly)
 
UINT32 HTTPIntrnParseAuthHeader (P_HTTP_SESSION pHTTPSession)
 
UINT32 HTTPIntrnAuthHandler (P_HTTP_SESSION pHTTPSession)
 
UINT32 HTTPIntrnAuthSendDigest (P_HTTP_SESSION pHTTPSession)
 
UINT32 HTTPIntrnAuthSendBasic (P_HTTP_SESSION pHTTPSession)
 
UINT32 HTTPIntrnAuthenticate (P_HTTP_SESSION pHTTPSession)
 
UINT32 HTTPIntrnHeadersAdd (P_HTTP_SESSION pHTTPSession, CHAR *pHeaderName, UINT32 nNameLength, CHAR *pHeaderData, UINT32 nDataLength)
 
UINT32 HTTPIntrnHeadersRemove (P_HTTP_SESSION pHTTPSession, CHAR *pHeaderName)
 
UINT32 HTTPIntrnHeadersReceive (P_HTTP_SESSION pHTTPSession, UINT32 nTimeout)
 
UINT32 HTTPIntrnHeadersSend (P_HTTP_SESSION pHTTPSession, HTTP_VERB HttpVerb)
 
UINT32 HTTPIntrnHeadersParse (P_HTTP_SESSION pHTTPSession)
 
UINT32 HTTPIntrnHeadersFind (P_HTTP_SESSION pHTTPSession, CHAR *pHeaderName, HTTP_PARAM *pParam, BOOL IncommingHeaders, UINT32 nOffset)
 
UINT32 HTTPIntrnSessionReset (P_HTTP_SESSION pHTTPSession, BOOL EntireSession)
 
UINT32 HTTPIntrnSessionGetUpTime (VOID)
 
BOOL HTTPIntrnSessionEvalTimeout (P_HTTP_SESSION pHTTPSession)
 

Macro Definition Documentation

◆ ALIGN

#define ALIGN ( size)    ((size & 0xfffffffc) + ((size & 3) ? 4 : 0))

◆ HTTP_CLIENT_ALLOW_HEAD_VERB

#define HTTP_CLIENT_ALLOW_HEAD_VERB   0

◆ HTTP_CLIENT_CRLF

#define HTTP_CLIENT_CRLF   "\r\n"

◆ HTTP_CLIENT_CRLFX2

#define HTTP_CLIENT_CRLFX2   "\r\n\r\n"

◆ HTTP_CLIENT_DEFAULT_AGENT

#define HTTP_CLIENT_DEFAULT_AGENT   "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)"

◆ HTTP_CLIENT_DEFAULT_DIGEST_AUTH

#define HTTP_CLIENT_DEFAULT_DIGEST_AUTH   "MD5"

◆ HTTP_CLIENT_DEFAULT_KEEP_ALIVE

#define HTTP_CLIENT_DEFAULT_KEEP_ALIVE   30

◆ HTTP_CLIENT_DEFAULT_PORT

#define HTTP_CLIENT_DEFAULT_PORT   80

◆ HTTP_CLIENT_DEFAULT_PROXY_AUTH

#define HTTP_CLIENT_DEFAULT_PROXY_AUTH   1

◆ HTTP_CLIENT_DEFAULT_PROXY_VER

#define HTTP_CLIENT_DEFAULT_PROXY_VER   "HTTP/1.0"

◆ HTTP_CLIENT_DEFAULT_SSL_PORT

#define HTTP_CLIENT_DEFAULT_SSL_PORT   443

◆ HTTP_CLIENT_DEFAULT_TIMEOUT

#define HTTP_CLIENT_DEFAULT_TIMEOUT   30

◆ HTTP_CLIENT_DEFAULT_VER

#define HTTP_CLIENT_DEFAULT_VER   "HTTP/1.1"

◆ HTTP_CLIENT_DEFAULT_VERB

#define HTTP_CLIENT_DEFAULT_VERB   0

◆ HTTP_CLIENT_FLAG_CHUNKED

#define HTTP_CLIENT_FLAG_CHUNKED   0x00000100

◆ HTTP_CLIENT_FLAG_SECURE

#define HTTP_CLIENT_FLAG_SECURE   0x00000010

◆ HTTP_CLIENT_FLAG_URLANDPORT

#define HTTP_CLIENT_FLAG_URLANDPORT   0x00000020

◆ HTTP_CLIENT_FLAG_URLHTTPS

#define HTTP_CLIENT_FLAG_URLHTTPS   0x00000040

◆ HTTP_CLIENT_FLAG_USINGPROXY

#define HTTP_CLIENT_FLAG_USINGPROXY   0x00000080

◆ HTTP_CLIENT_INIT_SEND_RECV_HEADERS

#define HTTP_CLIENT_INIT_SEND_RECV_HEADERS   2048

◆ HTTP_CLIENT_MAX_64_ENCODED_CRED

#define HTTP_CLIENT_MAX_64_ENCODED_CRED   ((HTTP_CLIENT_MAX_USERNAME_LENGTH + HTTP_CLIENT_MAX_PASSWORD_LENGTH) * 2) + 4

◆ HTTP_CLIENT_MAX_CHUNK_HEADER

#define HTTP_CLIENT_MAX_CHUNK_HEADER   64

◆ HTTP_CLIENT_MAX_HEADER_SEARCH_CLUE

#define HTTP_CLIENT_MAX_HEADER_SEARCH_CLUE   1024

◆ HTTP_CLIENT_MAX_PASSWORD_LENGTH

#define HTTP_CLIENT_MAX_PASSWORD_LENGTH   16

◆ HTTP_CLIENT_MAX_PROXY_HOST_LENGTH

#define HTTP_CLIENT_MAX_PROXY_HOST_LENGTH   64

◆ HTTP_CLIENT_MAX_SEND_RECV_HEADERS

#define HTTP_CLIENT_MAX_SEND_RECV_HEADERS   1024

◆ HTTP_CLIENT_MAX_TOKEN_LENGTH

#define HTTP_CLIENT_MAX_TOKEN_LENGTH   512

◆ HTTP_CLIENT_MAX_TOKEN_NAME_LENGTH

#define HTTP_CLIENT_MAX_TOKEN_NAME_LENGTH   32

◆ HTTP_CLIENT_MAX_USERNAME_LENGTH

#define HTTP_CLIENT_MAX_USERNAME_LENGTH   16

◆ HTTP_CLIENT_MEMORY_RESIZABLE

#define HTTP_CLIENT_MEMORY_RESIZABLE   FALSE

◆ HTTP_CLIENT_MEMORY_RESIZE_FACTOR

#define HTTP_CLIENT_MEMORY_RESIZE_FACTOR   16

◆ HTTP_CLIENT_VERSION_MAJOR

#define HTTP_CLIENT_VERSION_MAJOR   1

◆ HTTP_CLIENT_VERSION_MINOR

#define HTTP_CLIENT_VERSION_MINOR   0

◆ HTTP_STATUS_CONTINUE

#define HTTP_STATUS_CONTINUE   100

◆ HTTP_STATUS_OBJECT_MOVED

#define HTTP_STATUS_OBJECT_MOVED   302

◆ HTTP_STATUS_OBJECT_MOVED_PERMANENTLY

#define HTTP_STATUS_OBJECT_MOVED_PERMANENTLY   301

◆ HTTP_STATUS_OK

#define HTTP_STATUS_OK   200

◆ HTTP_STATUS_PROXY_AUTHENTICATION_REQUIRED

#define HTTP_STATUS_PROXY_AUTHENTICATION_REQUIRED   407

◆ HTTP_STATUS_UNAUTHORIZED

#define HTTP_STATUS_UNAUTHORIZED   401

◆ HTTP_TIMEOUT

#define HTTP_TIMEOUT ( nTimeout)    (((nTimeout) > (0)) ? (nTimeout) : (HTTP_CLIENT_DEFAULT_TIMEOUT))

◆ MAX

#define MAX ( a,
b )   (((a) > (b)) ? (a) : (b))

◆ MIN

#define MIN ( a,
b )   (((a) < (b)) ? (a) : (b))

Typedef Documentation

◆ HTTP_AUTH_HEADER

◆ HTTP_CLIENT_SESSION_FLAGS

◆ HTTP_CONNECTION

◆ HTTP_COUNTERS

typedef struct _HTTP_COUNTERS HTTP_COUNTERS

◆ HTTP_CREDENTIALS

◆ HTTP_HEADERS

typedef struct _HTTP_HEADERS HTTP_HEADERS

◆ HTTP_HEADERS_INFO

◆ HTTP_PARAM

typedef struct _HTTP_PARAM HTTP_PARAM

◆ HTTP_PROXY

typedef struct _HTTP_PROXY HTTP_PROXY

◆ HTTP_SESSION

typedef struct _HTTP_REQUEST HTTP_SESSION

◆ HTTP_SESSION_HANDLE

◆ HTTP_URL

typedef struct _HTTP_URL HTTP_URL

◆ P_HTTP_SESSION

typedef struct _HTTP_REQUEST * P_HTTP_SESSION

Function Documentation

◆ HTTPClientAddRequestHeaders()

UINT32 HTTPClientAddRequestHeaders ( HTTP_SESSION_HANDLE pSession,
CHAR * pHeaderName,
CHAR * pHeaderData,
BOOL nInsert )

◆ HTTPClientCloseRequest()

UINT32 HTTPClientCloseRequest ( HTTP_SESSION_HANDLE * pSession)

◆ HTTPClientFindCloseHeader()

UINT32 HTTPClientFindCloseHeader ( HTTP_SESSION_HANDLE pSession)

◆ HTTPClientFindFirstHeader()

UINT32 HTTPClientFindFirstHeader ( HTTP_SESSION_HANDLE pSession,
CHAR * pSearchClue,
CHAR * pHeaderBuffer,
UINT32 * nLength )

◆ HTTPClientGetInfo()

UINT32 HTTPClientGetInfo ( HTTP_SESSION_HANDLE pSession,
HTTP_CLIENT * HTTPClient )

◆ HTTPClientGetNextHeader()

UINT32 HTTPClientGetNextHeader ( HTTP_SESSION_HANDLE pSession,
CHAR * pHeaderBuffer,
UINT32 * nLength )

◆ HTTPClientOpenRequest()

HTTP_SESSION_HANDLE HTTPClientOpenRequest ( HTTP_CLIENT_SESSION_FLAGS Flags)

◆ HTTPClientReadData()

UINT32 HTTPClientReadData ( HTTP_SESSION_HANDLE pSession,
VOID * pBuffer,
UINT32 nBytesToRead,
UINT32 nTimeout,
UINT32 * nBytesRecived )

◆ HTTPClientRecvResponse()

UINT32 HTTPClientRecvResponse ( HTTP_SESSION_HANDLE pSession,
UINT32 nTimeout )

◆ HTTPClientSendRequest()

UINT32 HTTPClientSendRequest ( HTTP_SESSION_HANDLE pSession,
CHAR * pUrl,
VOID * pData,
UINT32 nDataLength,
BOOL TotalLength,
UINT32 nTimeout,
UINT32 nClientPort )

◆ HTTPClientSetAuth()

UINT32 HTTPClientSetAuth ( HTTP_SESSION_HANDLE pSession,
HTTP_AUTH_SCHEMA AuthSchema,
void * pReserved )

◆ HTTPClientSetCredentials()

UINT32 HTTPClientSetCredentials ( HTTP_SESSION_HANDLE pSession,
CHAR * pUserName,
CHAR * pPassword )

◆ HTTPClientSetLocalConnection()

UINT32 HTTPClientSetLocalConnection ( HTTP_SESSION_HANDLE pSession,
UINT32 nPort )

◆ HTTPClientSetProxy()

UINT32 HTTPClientSetProxy ( HTTP_SESSION_HANDLE pSession,
CHAR * pProxyName,
UINT16 nPort,
CHAR * pUserName,
CHAR * pPassword )

◆ HTTPClientSetVerb()

UINT32 HTTPClientSetVerb ( HTTP_SESSION_HANDLE pSession,
HTTP_VERB HttpVerb )

◆ HTTPClientWriteData()

UINT32 HTTPClientWriteData ( HTTP_SESSION_HANDLE pSession,
VOID * pBuffer,
UINT32 nBufferLength,
UINT32 nTimeout )

◆ HTTPIntrnAuthenticate()

UINT32 HTTPIntrnAuthenticate ( P_HTTP_SESSION pHTTPSession)

◆ HTTPIntrnAuthHandler()

UINT32 HTTPIntrnAuthHandler ( P_HTTP_SESSION pHTTPSession)

◆ HTTPIntrnAuthSendBasic()

UINT32 HTTPIntrnAuthSendBasic ( P_HTTP_SESSION pHTTPSession)

◆ HTTPIntrnAuthSendDigest()

UINT32 HTTPIntrnAuthSendDigest ( P_HTTP_SESSION pHTTPSession)

◆ HTTPIntrnConnectionClose()

UINT32 HTTPIntrnConnectionClose ( P_HTTP_SESSION pHTTPSession)

◆ HTTPIntrnConnectionOpen()

UINT32 HTTPIntrnConnectionOpen ( P_HTTP_SESSION pHTTPSession)

◆ HTTPIntrnGetRemoteChunkLength()

UINT32 HTTPIntrnGetRemoteChunkLength ( P_HTTP_SESSION pHTTPSession)

◆ HTTPIntrnGetRemoteHeaders()

UINT32 HTTPIntrnGetRemoteHeaders ( P_HTTP_SESSION pHTTPSession)

◆ HTTPIntrnHeadersAdd()

UINT32 HTTPIntrnHeadersAdd ( P_HTTP_SESSION pHTTPSession,
CHAR * pHeaderName,
UINT32 nNameLength,
CHAR * pHeaderData,
UINT32 nDataLength )

◆ HTTPIntrnHeadersFind()

UINT32 HTTPIntrnHeadersFind ( P_HTTP_SESSION pHTTPSession,
CHAR * pHeaderName,
HTTP_PARAM * pParam,
BOOL IncommingHeaders,
UINT32 nOffset )

◆ HTTPIntrnHeadersParse()

UINT32 HTTPIntrnHeadersParse ( P_HTTP_SESSION pHTTPSession)

◆ HTTPIntrnHeadersReceive()

UINT32 HTTPIntrnHeadersReceive ( P_HTTP_SESSION pHTTPSession,
UINT32 nTimeout )

◆ HTTPIntrnHeadersRemove()

UINT32 HTTPIntrnHeadersRemove ( P_HTTP_SESSION pHTTPSession,
CHAR * pHeaderName )

◆ HTTPIntrnHeadersSend()

UINT32 HTTPIntrnHeadersSend ( P_HTTP_SESSION pHTTPSession,
HTTP_VERB HttpVerb )

◆ HTTPIntrnParseAuthHeader()

UINT32 HTTPIntrnParseAuthHeader ( P_HTTP_SESSION pHTTPSession)

◆ HTTPIntrnRecv()

UINT32 HTTPIntrnRecv ( P_HTTP_SESSION pHTTPSession,
CHAR * pData,
UINT32 * nLength,
BOOL PeekOnly )

◆ HTTPIntrnResizeBuffer()

UINT32 HTTPIntrnResizeBuffer ( P_HTTP_SESSION pHTTPSession,
UINT32 nNewSize )

◆ HTTPIntrnSend()

UINT32 HTTPIntrnSend ( P_HTTP_SESSION pHTTPSession,
CHAR * pData,
UINT32 * nLength )

◆ HTTPIntrnSessionEvalTimeout()

BOOL HTTPIntrnSessionEvalTimeout ( P_HTTP_SESSION pHTTPSession)

◆ HTTPIntrnSessionGetUpTime()

UINT32 HTTPIntrnSessionGetUpTime ( VOID )

◆ HTTPIntrnSessionReset()

UINT32 HTTPIntrnSessionReset ( P_HTTP_SESSION pHTTPSession,
BOOL EntireSession )

◆ HTTPIntrnSetURL()

UINT32 HTTPIntrnSetURL ( P_HTTP_SESSION pHTTPSession,
CHAR * pUrl,
UINT32 nUrlLength )