Barracuda Application Server C/C++ Reference
Native APIs, integration guides, and platform interfaces
HttpClient.h File Reference
#include <DynBuffer.h>
#include <SharkSslEx.h>
Include dependency graph for HttpClient.h:

Go to the source code of this file.

Classes

struct  HttpClientKeyVal
 A container for key/value pairs used when setting custom HTTP headers or URL encoded HTTP parameters. More...
 
struct  HttpClientHeader
 The response HTTP headers returned by HttpClient::getHeaders. More...
 
struct  HttpClient
 Blocking HTTP/1.1 client with optional SharkSSL HTTPS support. More...
 

Macros

#define HttpClientHeader_key(c, o)   ((c)->db.super.buf + (o)->key)
 C accessor: c is the required owning client and o its header entry. More...
 
#define HttpClientHeader_val(c, o)   ((c)->db.super.buf + (o)->val)
 C accessor: c is the required owning client and o its header entry. More...
 
#define HttpClient_setSSL(o, ssl)   (o)->sharkSslClient=ssl
 Select the TLS context for future HTTPS connections. More...
 
#define HttpClient_setReadTmo(o, timeout)   (o)->readTmo=timeout
 Set the timeout applied to individual blocking reads. More...
 
#define HttpClient_getError(o)   (o)->lastError
 Query the stored client error without performing I/O. More...
 
#define HttpClient_getSoDispCon(o)   ((SoDispCon*)(o))
 Access the embedded transport object. More...
 
#define HttpClient_setAcceptTrusted(o, t)   (o)->acceptTrusted=t
 C form of HttpClient::setAcceptTrusted. More...
 

Typedefs

typedef struct HttpClientKeyVal HttpClientKeyVal
 A container for key/value pairs used when setting custom HTTP headers or URL encoded HTTP parameters. More...
 
typedef HttpClient HttpClient
 Blocking HTTP/1.1 client with optional SharkSSL HTTPS support. More...
 

Functions

void HttpClient_constructor (HttpClient *o, SoDisp *disp, U8 mode)
 Construct an idle client; no connection is opened. More...
 
SharkSslCon * HttpClient_getSharkSslCon (HttpClient *o)
 Access the current SharkSSL connection. More...
 
void HttpClient_destructor (HttpClient *o)
 Close the connection and release client-owned storage. More...
 
int HttpClient_isURL (const char *url)
 Classify a URL scheme; this does not validate the complete URL. More...
 
int HttpClient_request (HttpClient *o, HttpMethod methodType, const char *url, const char *userPass, const HttpClientKeyVal *params, const HttpClientKeyVal *headers, BaFileSize size)
 C form of HttpClient::request, with the same return values and lifecycle. More...
 
int HttpClient_sendData (HttpClient *o, const void *data, int len)
 Send part or all of the request body after request(). More...
 
int HttpClient_getBufSize (HttpClient *o)
 Query bytes already buffered beyond the response headers. More...
 
int HttpClient_readData (HttpClient *o, void *buf, int bufSize)
 Read response body bytes, removing chunk framing when applicable. More...
 
const char * HttpClient_getHeaderValue (HttpClient *o, const char *name)
 Look up the first response header with this name, ignoring case. More...
 
HttpClientHeaderHttpClient_getHeaders (HttpClient *o, int *hlen)
 Obtain parsed response headers; may finish an upload and block for input. More...
 
void HttpClient_close (HttpClient *o)
 Shut down the connection and discard the current response state. More...
 
int HttpClient_getStatus (HttpClient *o)
 Obtain the HTTP status, reading response headers if no status is cached. More...
 
SharkSslConTrust HttpClient_trusted (HttpClient *o)
 Query the current connection's certificate trust result. More...