Back to Turicreate

nanohttp: minimal HTTP implementation

deps/src/libxml2-2.9.1/doc/devhelp/libxml2-nanohttp.html

6.4.17.7 KB
Original Source

| | | | | libxml2 Reference Manual |

nanohttp

nanohttp - minimal HTTP implementation

minimal HTTP implementation allowing to fetch resources like external subset.

Author(s): Daniel Veillard

Synopsis

int[xmlNanoHTTPRead](#xmlNanoHTTPRead)(void * ctx,
void * dest,
int len);
int[xmlNanoHTTPSave](#xmlNanoHTTPSave)(void * ctxt,
const char * filename);
const char *[xmlNanoHTTPRedir](#xmlNanoHTTPRedir)(void * ctx);
const char *[xmlNanoHTTPAuthHeader](#xmlNanoHTTPAuthHeader)(void * ctx);
int[xmlNanoHTTPFetch](#xmlNanoHTTPFetch)(const char * URL,
const char * filename,
char ** contentType);
int[xmlNanoHTTPContentLength](#xmlNanoHTTPContentLength)(void * ctx);
const char *[xmlNanoHTTPMimeType](#xmlNanoHTTPMimeType)(void * ctx);
void[xmlNanoHTTPClose](#xmlNanoHTTPClose)(void * ctx);
void[xmlNanoHTTPCleanup](#xmlNanoHTTPCleanup)(void);
void *[xmlNanoHTTPMethod](#xmlNanoHTTPMethod)(const char * URL,
const char * method,
const char * input,
char ** contentType,
const char * headers,
int ilen);
void[xmlNanoHTTPInit](#xmlNanoHTTPInit)(void);
void *[xmlNanoHTTPOpen](#xmlNanoHTTPOpen)(const char * URL,
char ** contentType);
void *[xmlNanoHTTPOpenRedir](#xmlNanoHTTPOpenRedir)(const char * URL,
char ** contentType,
char ** redir);
void *[xmlNanoHTTPMethodRedir](#xmlNanoHTTPMethodRedir)(const char * URL,
const char * method,
const char * input,
char ** contentType,
char ** redir,
const char * headers,
int ilen);
void[xmlNanoHTTPScanProxy](#xmlNanoHTTPScanProxy)(const char * URL);
const char *[xmlNanoHTTPEncoding](#xmlNanoHTTPEncoding)(void * ctx);
int[xmlNanoHTTPReturnCode](#xmlNanoHTTPReturnCode)(void * ctx);

Description

Details

xmlNanoHTTPAuthHeader ()

const char *	xmlNanoHTTPAuthHeader	(void * ctx)

Get the authentication header of an HTTP context

| ctx: | the HTTP context | | Returns: | the stashed value of the WWW-Authenticate or Proxy-Authenticate header. |


xmlNanoHTTPCleanup ()

void	xmlNanoHTTPCleanup (void)

Cleanup the HTTP protocol layer.


xmlNanoHTTPClose ()

void	xmlNanoHTTPClose (void * ctx)

This function closes an HTTP context, it ends up the connection and free all data related to it.

| ctx: | the HTTP context |


xmlNanoHTTPContentLength ()

int	xmlNanoHTTPContentLength	(void * ctx)

Provides the specified content length from the HTTP header.

| ctx: | the HTTP context | | Returns: | the specified content length from the HTTP header. Note that a value of -1 indicates that the content length element was not included in the response header. |


xmlNanoHTTPEncoding ()

const char *	xmlNanoHTTPEncoding	(void * ctx)

Provides the specified encoding if specified in the HTTP headers.

| ctx: | the HTTP context | | Returns: | the specified encoding or NULL if not available |


xmlNanoHTTPFetch ()

int	xmlNanoHTTPFetch (const char * URL,
const char * filename,
char ** contentType)

This function try to fetch the indicated resource via HTTP GET and save it's content in the file.

| URL: | The URL to load | | filename: | the filename where the content should be saved | | contentType: | if available the Content-Type information will be returned at that location | | Returns: | -1 in case of failure, 0 incase of success. The contentType, if provided must be freed by the caller |


xmlNanoHTTPInit ()

void	xmlNanoHTTPInit (void)

Initialize the HTTP protocol layer. Currently it just checks for proxy informations


xmlNanoHTTPMethod ()

void *	xmlNanoHTTPMethod (const char * URL,
const char * method,
const char * input,
char ** contentType,
const char * headers,
int ilen)

This function try to open a connection to the indicated resource via HTTP using the given @method, adding the given extra headers and the input buffer for the request content.

| URL: | The URL to load | | method: | the HTTP method to use | | input: | the input string if any | | contentType: | the Content-Type information IN and OUT | | headers: | the extra headers | | ilen: | input length | | Returns: | NULL in case of failure, otherwise a request handler. The contentType, if provided must be freed by the caller |


xmlNanoHTTPMethodRedir ()

void *	xmlNanoHTTPMethodRedir (const char * URL,
const char * method,
const char * input,
char ** contentType,
char ** redir,
const char * headers,
int ilen)

This function try to open a connection to the indicated resource via HTTP using the given @method, adding the given extra headers and the input buffer for the request content.

| URL: | The URL to load | | method: | the HTTP method to use | | input: | the input string if any | | contentType: | the Content-Type information IN and OUT | | redir: | the redirected URL OUT | | headers: | the extra headers | | ilen: | input length | | Returns: | NULL in case of failure, otherwise a request handler. The contentType, or redir, if provided must be freed by the caller |


xmlNanoHTTPMimeType ()

const char *	xmlNanoHTTPMimeType	(void * ctx)

Provides the specified Mime-Type if specified in the HTTP headers.

| ctx: | the HTTP context | | Returns: | the specified Mime-Type or NULL if not available |


xmlNanoHTTPOpen ()

void *	xmlNanoHTTPOpen (const char * URL,
char ** contentType)

This function try to open a connection to the indicated resource via HTTP GET.

| URL: | The URL to load | | contentType: | if available the Content-Type information will be returned at that location | | Returns: | NULL in case of failure, otherwise a request handler. The contentType, if provided must be freed by the caller |


xmlNanoHTTPOpenRedir ()

void *	xmlNanoHTTPOpenRedir (const char * URL,
char ** contentType,
char ** redir)

This function try to open a connection to the indicated resource via HTTP GET.

| URL: | The URL to load | | contentType: | if available the Content-Type information will be returned at that location | | redir: | if available the redirected URL will be returned | | Returns: | NULL in case of failure, otherwise a request handler. The contentType, if provided must be freed by the caller |


xmlNanoHTTPRead ()

int	xmlNanoHTTPRead (void * ctx,
void * dest,
int len)

This function tries to read @len bytes from the existing HTTP connection and saves them in @dest. This is a blocking call.

| ctx: | the HTTP context | | dest: | a buffer | | len: | the buffer length | | Returns: | the number of byte read. 0 is an indication of an end of connection. -1 indicates a parameter error. |


xmlNanoHTTPRedir ()

const char *	xmlNanoHTTPRedir	(void * ctx)

Provides the specified redirection URL if available from the HTTP header.

| ctx: | the HTTP context | | Returns: | the specified redirection URL or NULL if not redirected. |


xmlNanoHTTPReturnCode ()

int	xmlNanoHTTPReturnCode (void * ctx)

Get the latest HTTP return code received

| ctx: | the HTTP context | | Returns: | the HTTP return code for the request. |


xmlNanoHTTPSave ()

int	xmlNanoHTTPSave (void * ctxt,
const char * filename)

This function saves the output of the HTTP transaction to a file It closes and free the context at the end

| ctxt: | the HTTP context | | filename: | the filename where the content should be saved | | Returns: | -1 in case of failure, 0 incase of success. |


xmlNanoHTTPScanProxy ()

void	xmlNanoHTTPScanProxy (const char * URL)

(Re)Initialize the HTTP Proxy context by parsing the URL and finding the protocol host port it indicates. Should be like http://myproxy/ or http://myproxy:3128/ A NULL URL cleans up proxy informations.

| URL: | The proxy URL used to initialize the proxy context |