Annotation of embedaddon/libxml2/doc/devhelp/libxml2-nanohttp.html, revision 1.1
1.1 ! misho 1: <?xml version="1.0" encoding="UTF-8"?>
! 2: <html>
! 3: <head>
! 4: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
! 5: <title>nanohttp: minimal HTTP implementation</title>
! 6: <meta name="generator" content="Libxml2 devhelp stylesheet"/>
! 7: <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
! 8: <link rel="up" href="general.html" title="API"/>
! 9: <link rel="stylesheet" href="style.css" type="text/css"/>
! 10: <link rel="chapter" href="general.html" title="API"/>
! 11: </head>
! 12: <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
! 13: <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
! 14: <tr valign="middle">
! 15: <td>
! 16: <a accesskey="p" href="libxml2-nanoftp.html">
! 17: <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
! 18: </a>
! 19: </td>
! 20: <td>
! 21: <a accesskey="u" href="general.html">
! 22: <img src="up.png" width="24" height="24" border="0" alt="Up"/>
! 23: </a>
! 24: </td>
! 25: <td>
! 26: <a accesskey="h" href="index.html">
! 27: <img src="home.png" width="24" height="24" border="0" alt="Home"/>
! 28: </a>
! 29: </td>
! 30: <td>
! 31: <a accesskey="n" href="libxml2-parser.html">
! 32: <img src="right.png" width="24" height="24" border="0" alt="Next"/>
! 33: </a>
! 34: </td>
! 35: <th width="100%" align="center">libxml2 Reference Manual</th>
! 36: </tr>
! 37: </table>
! 38: <h2>
! 39: <span class="refentrytitle">nanohttp</span>
! 40: </h2>
! 41: <p>nanohttp - minimal HTTP implementation</p>
! 42: <p>minimal HTTP implementation allowing to fetch resources like external subset. </p>
! 43: <p>Author(s): Daniel Veillard </p>
! 44: <div class="refsynopsisdiv">
! 45: <h2>Synopsis</h2>
! 46: <pre class="synopsis">int <a href="#xmlNanoHTTPRead">xmlNanoHTTPRead</a> (void * ctx, <br/> void * dest, <br/> int len);
! 47: int <a href="#xmlNanoHTTPSave">xmlNanoHTTPSave</a> (void * ctxt, <br/> const char * filename);
! 48: const char * <a href="#xmlNanoHTTPRedir">xmlNanoHTTPRedir</a> (void * ctx);
! 49: const char * <a href="#xmlNanoHTTPAuthHeader">xmlNanoHTTPAuthHeader</a> (void * ctx);
! 50: int <a href="#xmlNanoHTTPFetch">xmlNanoHTTPFetch</a> (const char * URL, <br/> const char * filename, <br/> char ** contentType);
! 51: int <a href="#xmlNanoHTTPContentLength">xmlNanoHTTPContentLength</a> (void * ctx);
! 52: const char * <a href="#xmlNanoHTTPMimeType">xmlNanoHTTPMimeType</a> (void * ctx);
! 53: void <a href="#xmlNanoHTTPClose">xmlNanoHTTPClose</a> (void * ctx);
! 54: void <a href="#xmlNanoHTTPCleanup">xmlNanoHTTPCleanup</a> (void);
! 55: void * <a href="#xmlNanoHTTPMethod">xmlNanoHTTPMethod</a> (const char * URL, <br/> const char * method, <br/> const char * input, <br/> char ** contentType, <br/> const char * headers, <br/> int ilen);
! 56: void <a href="#xmlNanoHTTPInit">xmlNanoHTTPInit</a> (void);
! 57: void * <a href="#xmlNanoHTTPOpen">xmlNanoHTTPOpen</a> (const char * URL, <br/> char ** contentType);
! 58: void * <a href="#xmlNanoHTTPOpenRedir">xmlNanoHTTPOpenRedir</a> (const char * URL, <br/> char ** contentType, <br/> char ** redir);
! 59: void * <a href="#xmlNanoHTTPMethodRedir">xmlNanoHTTPMethodRedir</a> (const char * URL, <br/> const char * method, <br/> const char * input, <br/> char ** contentType, <br/> char ** redir, <br/> const char * headers, <br/> int ilen);
! 60: void <a href="#xmlNanoHTTPScanProxy">xmlNanoHTTPScanProxy</a> (const char * URL);
! 61: const char * <a href="#xmlNanoHTTPEncoding">xmlNanoHTTPEncoding</a> (void * ctx);
! 62: int <a href="#xmlNanoHTTPReturnCode">xmlNanoHTTPReturnCode</a> (void * ctx);
! 63: </pre>
! 64: </div>
! 65: <div class="refsect1" lang="en">
! 66: <h2>Description</h2>
! 67: </div>
! 68: <div class="refsect1" lang="en">
! 69: <h2>Details</h2>
! 70: <div class="refsect2" lang="en">
! 71: <div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPAuthHeader"/>xmlNanoHTTPAuthHeader ()</h3><pre class="programlisting">const char * xmlNanoHTTPAuthHeader (void * ctx)<br/>
! 72: </pre><p>Get the authentication header of an HTTP context</p>
! 73: <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the HTTP context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the stashed value of the WWW-Authenticate or Proxy-Authenticate header.</td></tr></tbody></table></div></div>
! 74: <hr/>
! 75: <div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPCleanup"/>xmlNanoHTTPCleanup ()</h3><pre class="programlisting">void xmlNanoHTTPCleanup (void)<br/>
! 76: </pre><p>Cleanup the HTTP protocol layer.</p>
! 77: </div>
! 78: <hr/>
! 79: <div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPClose"/>xmlNanoHTTPClose ()</h3><pre class="programlisting">void xmlNanoHTTPClose (void * ctx)<br/>
! 80: </pre><p>This function closes an HTTP context, it ends up the connection and free all data related to it.</p>
! 81: <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the HTTP context</td></tr></tbody></table></div></div>
! 82: <hr/>
! 83: <div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPContentLength"/>xmlNanoHTTPContentLength ()</h3><pre class="programlisting">int xmlNanoHTTPContentLength (void * ctx)<br/>
! 84: </pre><p>Provides the specified content length from the HTTP header.</p>
! 85: <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the HTTP context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>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.</td></tr></tbody></table></div></div>
! 86: <hr/>
! 87: <div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPEncoding"/>xmlNanoHTTPEncoding ()</h3><pre class="programlisting">const char * xmlNanoHTTPEncoding (void * ctx)<br/>
! 88: </pre><p>Provides the specified encoding if specified in the HTTP headers.</p>
! 89: <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the HTTP context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the specified encoding or NULL if not available</td></tr></tbody></table></div></div>
! 90: <hr/>
! 91: <div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPFetch"/>xmlNanoHTTPFetch ()</h3><pre class="programlisting">int xmlNanoHTTPFetch (const char * URL, <br/> const char * filename, <br/> char ** contentType)<br/>
! 92: </pre><p>This function try to fetch the indicated resource via HTTP GET and save it's content in the file.</p>
! 93: <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>The URL to load</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename where the content should be saved</td></tr><tr><td><span class="term"><i><tt>contentType</tt></i>:</span></td><td>if available the Content-Type information will be returned at that location</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of failure, 0 incase of success. The contentType, if provided must be freed by the caller</td></tr></tbody></table></div></div>
! 94: <hr/>
! 95: <div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPInit"/>xmlNanoHTTPInit ()</h3><pre class="programlisting">void xmlNanoHTTPInit (void)<br/>
! 96: </pre><p>Initialize the HTTP protocol layer. Currently it just checks for proxy informations</p>
! 97: </div>
! 98: <hr/>
! 99: <div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPMethod"/>xmlNanoHTTPMethod ()</h3><pre class="programlisting">void * xmlNanoHTTPMethod (const char * URL, <br/> const char * method, <br/> const char * input, <br/> char ** contentType, <br/> const char * headers, <br/> int ilen)<br/>
! 100: </pre><p>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.</p>
! 101: <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>The URL to load</td></tr><tr><td><span class="term"><i><tt>method</tt></i>:</span></td><td>the HTTP method to use</td></tr><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>the input string if any</td></tr><tr><td><span class="term"><i><tt>contentType</tt></i>:</span></td><td>the Content-Type information IN and OUT</td></tr><tr><td><span class="term"><i><tt>headers</tt></i>:</span></td><td>the extra headers</td></tr><tr><td><span class="term"><i><tt>ilen</tt></i>:</span></td><td>input length</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL in case of failure, otherwise a request handler. The contentType, if provided must be freed by the caller</td></tr></tbody></table></div></div>
! 102: <hr/>
! 103: <div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPMethodRedir"/>xmlNanoHTTPMethodRedir ()</h3><pre class="programlisting">void * xmlNanoHTTPMethodRedir (const char * URL, <br/> const char * method, <br/> const char * input, <br/> char ** contentType, <br/> char ** redir, <br/> const char * headers, <br/> int ilen)<br/>
! 104: </pre><p>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.</p>
! 105: <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>The URL to load</td></tr><tr><td><span class="term"><i><tt>method</tt></i>:</span></td><td>the HTTP method to use</td></tr><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>the input string if any</td></tr><tr><td><span class="term"><i><tt>contentType</tt></i>:</span></td><td>the Content-Type information IN and OUT</td></tr><tr><td><span class="term"><i><tt>redir</tt></i>:</span></td><td>the redirected URL OUT</td></tr><tr><td><span class="term"><i><tt>headers</tt></i>:</span></td><td>the extra headers</td></tr><tr><td><span class="term"><i><tt>ilen</tt></i>:</span></td><td>input length</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL in case of failure, otherwise a request handler. The contentType, or redir, if provided must be freed by the caller</td></tr></tbody></table></div></div>
! 106: <hr/>
! 107: <div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPMimeType"/>xmlNanoHTTPMimeType ()</h3><pre class="programlisting">const char * xmlNanoHTTPMimeType (void * ctx)<br/>
! 108: </pre><p>Provides the specified Mime-Type if specified in the HTTP headers.</p>
! 109: <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the HTTP context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the specified Mime-Type or NULL if not available</td></tr></tbody></table></div></div>
! 110: <hr/>
! 111: <div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPOpen"/>xmlNanoHTTPOpen ()</h3><pre class="programlisting">void * xmlNanoHTTPOpen (const char * URL, <br/> char ** contentType)<br/>
! 112: </pre><p>This function try to open a connection to the indicated resource via HTTP GET.</p>
! 113: <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>The URL to load</td></tr><tr><td><span class="term"><i><tt>contentType</tt></i>:</span></td><td>if available the Content-Type information will be returned at that location</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL in case of failure, otherwise a request handler. The contentType, if provided must be freed by the caller</td></tr></tbody></table></div></div>
! 114: <hr/>
! 115: <div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPOpenRedir"/>xmlNanoHTTPOpenRedir ()</h3><pre class="programlisting">void * xmlNanoHTTPOpenRedir (const char * URL, <br/> char ** contentType, <br/> char ** redir)<br/>
! 116: </pre><p>This function try to open a connection to the indicated resource via HTTP GET.</p>
! 117: <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>The URL to load</td></tr><tr><td><span class="term"><i><tt>contentType</tt></i>:</span></td><td>if available the Content-Type information will be returned at that location</td></tr><tr><td><span class="term"><i><tt>redir</tt></i>:</span></td><td>if available the redirected URL will be returned</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL in case of failure, otherwise a request handler. The contentType, if provided must be freed by the caller</td></tr></tbody></table></div></div>
! 118: <hr/>
! 119: <div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPRead"/>xmlNanoHTTPRead ()</h3><pre class="programlisting">int xmlNanoHTTPRead (void * ctx, <br/> void * dest, <br/> int len)<br/>
! 120: </pre><p>This function tries to read @len bytes from the existing HTTP connection and saves them in @dest. This is a blocking call.</p>
! 121: <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the HTTP context</td></tr><tr><td><span class="term"><i><tt>dest</tt></i>:</span></td><td>a buffer</td></tr><tr><td><span class="term"><i><tt>len</tt></i>:</span></td><td>the buffer length</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte read. 0 is an indication of an end of connection. -1 indicates a parameter error.</td></tr></tbody></table></div></div>
! 122: <hr/>
! 123: <div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPRedir"/>xmlNanoHTTPRedir ()</h3><pre class="programlisting">const char * xmlNanoHTTPRedir (void * ctx)<br/>
! 124: </pre><p>Provides the specified redirection URL if available from the HTTP header.</p>
! 125: <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the HTTP context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the specified redirection URL or NULL if not redirected.</td></tr></tbody></table></div></div>
! 126: <hr/>
! 127: <div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPReturnCode"/>xmlNanoHTTPReturnCode ()</h3><pre class="programlisting">int xmlNanoHTTPReturnCode (void * ctx)<br/>
! 128: </pre><p>Get the latest HTTP return code received</p>
! 129: <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctx</tt></i>:</span></td><td>the HTTP context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the HTTP return code for the request.</td></tr></tbody></table></div></div>
! 130: <hr/>
! 131: <div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPSave"/>xmlNanoHTTPSave ()</h3><pre class="programlisting">int xmlNanoHTTPSave (void * ctxt, <br/> const char * filename)<br/>
! 132: </pre><p>This function saves the output of the HTTP transaction to a file It closes and free the context at the end</p>
! 133: <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the HTTP context</td></tr><tr><td><span class="term"><i><tt>filename</tt></i>:</span></td><td>the filename where the content should be saved</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of failure, 0 incase of success.</td></tr></tbody></table></div></div>
! 134: <hr/>
! 135: <div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPScanProxy"/>xmlNanoHTTPScanProxy ()</h3><pre class="programlisting">void xmlNanoHTTPScanProxy (const char * URL)<br/>
! 136: </pre><p>(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.</p>
! 137: <div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>URL</tt></i>:</span></td><td>The proxy URL used to initialize the proxy context</td></tr></tbody></table></div></div>
! 138: <hr/>
! 139: </div>
! 140: </div>
! 141: </body>
! 142: </html>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>