#

## Module nanohttp from libxml2

API Menu

- Main Menu
- Developer Menu
- Code Examples
- API Menu
- Parser API
- Tree API
- Reader API
- XML Guidelines
- ChangeLog

API Indexes

- Alphabetic
- Constructors
- Functions/Types
- Modules
- Symbols

Related links

- Mail archive
- XSLT libxslt
- DOM gdome2
- XML-DSig xmlsec
- FTP
- Windows binaries
- Solaris binaries
- MacOsX binaries
- lxml Python bindings
- Perl bindings
- C++ bindings
- PHP bindings
- Pascal bindings
- Ruby bindings
- Tcl bindings
- Bug Tracker

minimal HTTP implementation allowing to fetch resources like external subset.

## Table of Contents

    const char *	xmlNanoHTTPAuthHeader	(void * ctx)

    void	xmlNanoHTTPCleanup		(void)

    void	xmlNanoHTTPClose		(void * ctx)

    int	xmlNanoHTTPContentLength	(void * ctx)

    const char *	xmlNanoHTTPEncoding	(void * ctx)

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

    void	xmlNanoHTTPInit			(void)

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

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

    const char *	xmlNanoHTTPMimeType	(void * ctx)

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

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

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

    const char *	xmlNanoHTTPRedir	(void * ctx)

    int	xmlNanoHTTPReturnCode		(void * ctx)

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

    void	xmlNanoHTTPScanProxy		(const char * URL)

## Description

### Function: 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.

### Function: xmlNanoHTTPCleanup

    void	xmlNanoHTTPCleanup		(void)

Cleanup the HTTP protocol layer.

### Function: 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

### Function: 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.

### Function: 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

### Function: 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

### Function: xmlNanoHTTPInit

    void	xmlNanoHTTPInit			(void)

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

### Function: 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

### Function: 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

### Function: 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

### Function: 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

### Function: 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

### Function: 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.

### Function: 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.

### Function: xmlNanoHTTPReturnCode

    int	xmlNanoHTTPReturnCode		(void * ctx)

Get the latest HTTP return code received

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

### Function: 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.

### Function: 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

Daniel Veillard