1 <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>nanohttp</title><meta name="generator" content="DocBook XSL Stylesheets V1.58.1"><style xmlns="http://www.w3.org/TR/xhtml1/transitional" type="text/css">
2 .synopsis, .classsynopsis {
4 border: solid 1px #aaaaaa;
9 border: solid 1px #aaaaff;
18 border: solid 1px #ffaaaa;
25 .navigation a:visited {
31 </style><link rel="home" href="index.html" title="Gnome XML Library Reference Manual"><link rel="up" href="libxml-lib.html" title="Libxml Library Reference"><link rel="previous" href="libxml-xinclude.html" title="xinclude"><link rel="next" href="libxml-nanoftp.html" title="nanoftp"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxml-xinclude.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></img></a></td><td><a accesskey="u" href="libxml-lib.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></img></a></td><td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></img></a></td><th width="100%" align="center">Gnome XML Library Reference Manual</th><td><a accesskey="n" href="libxml-nanoftp.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></img></a></td></tr></table><div class="refentry" lang="en"><a name="libxml-nanohttp"></a><div class="titlepage"></div><div class="refnamediv"><h2>nanohttp</h2><p>nanohttp — </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">
35 void <a href="libxml-nanohttp.html#xmlNanoHTTPInit">xmlNanoHTTPInit</a> (void);
36 void <a href="libxml-nanohttp.html#xmlNanoHTTPCleanup">xmlNanoHTTPCleanup</a> (void);
37 void <a href="libxml-nanohttp.html#xmlNanoHTTPScanProxy">xmlNanoHTTPScanProxy</a> (const char *URL);
38 int <a href="libxml-nanohttp.html#xmlNanoHTTPFetch">xmlNanoHTTPFetch</a> (const char *URL,
41 void* <a href="libxml-nanohttp.html#xmlNanoHTTPMethod">xmlNanoHTTPMethod</a> (const char *URL,
47 void* <a href="libxml-nanohttp.html#xmlNanoHTTPMethodRedir">xmlNanoHTTPMethodRedir</a> (const char *URL,
54 void* <a href="libxml-nanohttp.html#xmlNanoHTTPOpen">xmlNanoHTTPOpen</a> (const char *URL,
56 void* <a href="libxml-nanohttp.html#xmlNanoHTTPOpenRedir">xmlNanoHTTPOpenRedir</a> (const char *URL,
59 int <a href="libxml-nanohttp.html#xmlNanoHTTPReturnCode">xmlNanoHTTPReturnCode</a> (void *ctx);
60 const char* <a href="libxml-nanohttp.html#xmlNanoHTTPAuthHeader">xmlNanoHTTPAuthHeader</a> (void *ctx);
61 int <a href="libxml-nanohttp.html#xmlNanoHTTPRead">xmlNanoHTTPRead</a> (void *ctx,
64 int <a href="libxml-nanohttp.html#xmlNanoHTTPSave">xmlNanoHTTPSave</a> (void *ctxt,
65 const char *filename);
66 void <a href="libxml-nanohttp.html#xmlNanoHTTPClose">xmlNanoHTTPClose</a> (void *ctx);
67 </pre></div><div class="refsect1" lang="en"><h2>Description</h2><p>
69 </p></div><div class="refsect1" lang="en"><h2>Details</h2><div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPInit"></a>xmlNanoHTTPInit ()</h3><pre class="programlisting">void xmlNanoHTTPInit (void);</pre><p>
70 Initialize the HTTP protocol layer.
71 Currently it just checks for proxy informations</p><p>
73 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPCleanup"></a>xmlNanoHTTPCleanup ()</h3><pre class="programlisting">void xmlNanoHTTPCleanup (void);</pre><p>
74 Cleanup the HTTP protocol layer.</p><p>
76 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPScanProxy"></a>xmlNanoHTTPScanProxy ()</h3><pre class="programlisting">void xmlNanoHTTPScanProxy (const char *URL);</pre><p>
77 (Re)Initialize the HTTP Proxy context by parsing the URL and finding
78 the protocol host port it indicates.
79 Should be like http://myproxy/ or http://myproxy:3128/
80 A NULL URL cleans up proxy informations.</p><p>
82 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>URL</tt></i> :</span></td><td> The proxy URL used to initialize the proxy context
83 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPFetch"></a>xmlNanoHTTPFetch ()</h3><pre class="programlisting">int xmlNanoHTTPFetch (const char *URL,
85 char **contentType);</pre><p>
86 This function try to fetch the indicated resource via HTTP GET
87 and save it's content in the file.</p><p>
89 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>URL</tt></i> :</span></td><td> The URL to load
90 </td></tr><tr><td><span class="term"><i><tt>filename</tt></i> :</span></td><td> the filename where the content should be saved
91 </td></tr><tr><td><span class="term"><i><tt>contentType</tt></i> :</span></td><td> if available the Content-Type information will be
92 returned at that location
93 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>-1 in case of failure, 0 incase of success. The contentType,
94 if provided must be freed by the caller
95 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPMethod"></a>xmlNanoHTTPMethod ()</h3><pre class="programlisting">void* xmlNanoHTTPMethod (const char *URL,
101 This function try to open a connection to the indicated resource
102 via HTTP using the given <i><tt>method</tt></i>, adding the given extra headers
103 and the input buffer for the request content.</p><p>
105 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>URL</tt></i> :</span></td><td> The URL to load
106 </td></tr><tr><td><span class="term"><i><tt>method</tt></i> :</span></td><td> the HTTP method to use
107 </td></tr><tr><td><span class="term"><i><tt>input</tt></i> :</span></td><td> the input string if any
108 </td></tr><tr><td><span class="term"><i><tt>contentType</tt></i> :</span></td><td> the Content-Type information IN and OUT
109 </td></tr><tr><td><span class="term"><i><tt>headers</tt></i> :</span></td><td> the extra headers
110 </td></tr><tr><td><span class="term"><i><tt>ilen</tt></i> :</span></td><td> input length
111 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPMethodRedir"></a>xmlNanoHTTPMethodRedir ()</h3><pre class="programlisting">void* xmlNanoHTTPMethodRedir (const char *URL,
118 This function try to open a connection to the indicated resource
119 via HTTP using the given <i><tt>method</tt></i>, adding the given extra headers
120 and the input buffer for the request content.</p><p>
122 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>URL</tt></i> :</span></td><td> The URL to load
123 </td></tr><tr><td><span class="term"><i><tt>method</tt></i> :</span></td><td> the HTTP method to use
124 </td></tr><tr><td><span class="term"><i><tt>input</tt></i> :</span></td><td> the input string if any
125 </td></tr><tr><td><span class="term"><i><tt>contentType</tt></i> :</span></td><td> the Content-Type information IN and OUT
126 </td></tr><tr><td><span class="term"><i><tt>redir</tt></i> :</span></td><td> the redirected URL OUT
127 </td></tr><tr><td><span class="term"><i><tt>headers</tt></i> :</span></td><td> the extra headers
128 </td></tr><tr><td><span class="term"><i><tt>ilen</tt></i> :</span></td><td> input length
129 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPOpen"></a>xmlNanoHTTPOpen ()</h3><pre class="programlisting">void* xmlNanoHTTPOpen (const char *URL,
130 char **contentType);</pre><p>
131 This function try to open a connection to the indicated resource
134 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>URL</tt></i> :</span></td><td> The URL to load
135 </td></tr><tr><td><span class="term"><i><tt>contentType</tt></i> :</span></td><td> if available the Content-Type information will be
136 returned at that location
137 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPOpenRedir"></a>xmlNanoHTTPOpenRedir ()</h3><pre class="programlisting">void* xmlNanoHTTPOpenRedir (const char *URL,
139 char **redir);</pre><p>
140 This function try to open a connection to the indicated resource
143 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>URL</tt></i> :</span></td><td> The URL to load
144 </td></tr><tr><td><span class="term"><i><tt>contentType</tt></i> :</span></td><td> if available the Content-Type information will be
145 returned at that location
146 </td></tr><tr><td><span class="term"><i><tt>redir</tt></i> :</span></td><td> if available the redirected URL will be returned
147 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPReturnCode"></a>xmlNanoHTTPReturnCode ()</h3><pre class="programlisting">int xmlNanoHTTPReturnCode (void *ctx);</pre><p>
148 Get the latest HTTP return code received</p><p>
150 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the HTTP context
151 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the HTTP return code for the request.
152 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPAuthHeader"></a>xmlNanoHTTPAuthHeader ()</h3><pre class="programlisting">const char* xmlNanoHTTPAuthHeader (void *ctx);</pre><p>
153 Get the authentication header of an HTTP context</p><p>
155 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the HTTP context
156 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the stashed value of the WWW-Authenticate or Proxy-Authenticate
158 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPRead"></a>xmlNanoHTTPRead ()</h3><pre class="programlisting">int xmlNanoHTTPRead (void *ctx,
161 This function tries to read <i><tt>len</tt></i> bytes from the existing HTTP connection
162 and saves them in <i><tt>dest</tt></i>. This is a blocking call.</p><p>
164 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the HTTP context
165 </td></tr><tr><td><span class="term"><i><tt>dest</tt></i> :</span></td><td> a buffer
166 </td></tr><tr><td><span class="term"><i><tt>len</tt></i> :</span></td><td> the buffer length
167 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the number of byte read. 0 is an indication of an end of connection.
168 -1 indicates a parameter error.
169 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPSave"></a>xmlNanoHTTPSave ()</h3><pre class="programlisting">int xmlNanoHTTPSave (void *ctxt,
170 const char *filename);</pre><p>
171 This function saves the output of the HTTP transaction to a file
172 It closes and free the context at the end</p><p>
174 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td> the HTTP context
175 </td></tr><tr><td><span class="term"><i><tt>filename</tt></i> :</span></td><td> the filename where the content should be saved
176 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>-1 in case of failure, 0 incase of success.
177 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xmlNanoHTTPClose"></a>xmlNanoHTTPClose ()</h3><pre class="programlisting">void xmlNanoHTTPClose (void *ctx);</pre><p>
178 This function closes an HTTP context, it ends up the connection and
179 free all data related to it.</p><p>
181 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctx</tt></i> :</span></td><td> the HTTP context
182 </td></tr></tbody></table></div></div></div></div><table xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="0"><tr valign="middle"><td align="left"><a accesskey="p" href="libxml-xinclude.html"><b><< xinclude</b></a></td><td align="right"><a accesskey="n" href="libxml-nanoftp.html"><b>nanoftp >></b></a></td></tr></table></body></html>