/[cvs]/nfo/php/libs/fr.free.lwest/Net/HTTP/net_http_client-fr.html
ViewVC logotype

Annotation of /nfo/php/libs/fr.free.lwest/Net/HTTP/net_http_client-fr.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations)
Tue Apr 1 20:11:52 2003 UTC (21 years, 4 months ago) by joko
Branch: MAIN
CVS Tags: HEAD
File MIME type: text/html
initial commit, visit http://lwest.free.fr/doc/php/lib/index.php3?page=net_http_client&lang=fr

1 joko 1.1 <html><head><meta name="keywords" content="php php4 http webdav client chargement fichier">
2     <meta name="language" content="Français">
3     <meta name="author" content="Léo WEST">
4     <style type="text/css">
5    
6     body,td,th,p,li,a {
7     font-family: Verdana, Arial, Helvetica;
8     font-size: 11px;
9     }
10    
11     body {
12     background-color: #ffffff;
13     margin-top: 2em;
14     margin-bottom: 2em;
15     }
16    
17     A {
18     color: #06a;
19     text-decoration: none;
20     }
21    
22     A:hover {
23     color: red;
24    
25     }
26    
27    
28     p,ul,li,table {
29     margin-left: 3em;
30     }
31    
32     p.note {
33     background-color: #fefecc;
34     font-size: smaller;
35     padding: 8px;
36     }
37    
38     span.code {
39     color: #448; font-weight: bold;
40     }
41    
42     div.code {
43     border : 1px solid #88a;
44     font-family: Courier, Fixed, Arial;
45     font-size: smaller;
46     color: green;
47     border: 1px solid marron;
48     padding: 1em;
49     margin-top: 1em;
50     margin-bottom: 5em;
51     margin-right: 3em;
52     margin-left: 4em;
53     background-color: #f0eeee;
54     }
55    
56    
57     ul {
58     list-style-type: none;
59     list-style-position: outside;
60     }
61    
62     li {
63     padding: 1px 0px 1px 0px;
64     margin-left: 2px;
65     }
66    
67     h1,h2,h3,h4,h5,h6,h7 {
68     font-family: Verdana, Arial, Helvetica, Sans-serif;
69     color: maroon;
70     }
71    
72     h2 { margin-left: 1em; }
73     h3 { margin-left: 2em; }
74     h4 { margin-left: 3em; }
75    
76     h5,h6 {
77     margin-left: 4em;
78     font-weight: bold;
79     text-decoration: underline;
80     }
81    
82     h1 {
83     text-align: center;
84     font-variant: small-caps;
85     }
86    
87    
88     .aIdx {
89     color: blue;
90     font-weight: bold;
91     text-decoration: none;
92     vlink-color: darkblue;
93    
94     }
95     .aIdx:active { color: pink; }
96     .aIdx:hover { color: pink; }
97    
98     table.params {
99     border-collapse: separate;
100     padding : 2 2 1 1;
101     }
102    
103     th {
104     vertical-align: top;
105     text-align: center;
106     }
107    
108     td {
109     font-family: Arial, Helvetica, Sans-serif;
110     }
111     </style>
112    
113     </head>
114     <body>
115     <a name="sec_1"><h1> HTTP Client class</h1></a>
116     <p class="text"> Net_HTTP_Client est un composant Client HTTP qui implemente toutes les m&eacute;thodes<br>
117     <strong>HTTP</strong> et la plupart des méthodes de <strong>WebDAV</strong> le standard de publication Web.<br>
118     <br>
119     <a href="zip/httpclient.zip">Télécharger httpclient.zip</a> cette archive au format ZIP contient la classe et la documentation<br>
120     <br>
121     </p><a name="sec_2"><h3> Informations</h3></a>
122     <p class="text"> Version : 0.7<br>
123     Licence : GPL<br>
124     Lastmod : Sep 2002<br>
125     Author : <a href="mailto:west_leo@yahoo-REMOVE-.com?subject=HttpClient">Leo West</a><br>
126     <br>
127     </p><a name="sec_3"><h3> Documentation</h3></a>
128    
129     <ul>
130     <ul>
131     <ul>
132     <li> <a class="index" href="#sec_4">Synopsis</a>
133     <ul>
134     <li> <a class="index" href="#sec_5">Exemple simple</a>
135     <li> <a class="index" href="#sec_6">Utilisation d'une connexion persistente HTTP/1.1</a>
136     </ul>
137     <li> <a class="index" href="#sec_7">M&eacute;thodes principales</a>
138     <ul>
139     <li> <a class="index" href="#sec_8">Net_HTTP_Client( [host, port] )</a>
140     <li> <a class="index" href="#sec_9">Connect( host, port )</a>
141     <li> <a class="index" href="#sec_10">Disconnect()</a>
142     <li> <a class="index" href="#sec_11">setHeaders( headers )</a>
143     <li> <a class="index" href="#sec_12">removeHeader( headerName )</a>
144     <li> <a class="index" href="#sec_13">setCredentials( username, password )</a>
145     <li> <a class="index" href="#sec_14">setProtocolVersion( version )</a>
146     <li> <a class="index" href="#sec_15">setProxy( proxyHost, proxyPort )</a>
147     <li> <a class="index" href="#sec_16">addHeader( headerName, headerValue )</a>
148     <li> <a class="index" href="#sec_16a">addCookie( cookieName, cookieValue )</a>
149     <li> <a class="index" href="#sec_16b">removeCookies()</a>
150     <li> <a class="index" href="#sec_17">Get( uri )</a>
151     <li> <a class="index" href="#sec_18">getHeaders()</a>
152     <li> <a class="index" href="#sec_19">getBody()</a>
153     <li> <a class="index" href="#sec_20">Head( uri )</a>
154     <li> <a class="index" href="#sec_20a">Options( uri )</a>
155     <li> <a class="index" href="#sec_21">Post( uri, query_params )</a>
156     </ul>
157     <li> <a class="index" href="#sec_22">M&eacute;thodes WebDAV</a>
158     <ul>
159     <li> <a class="index" href="#sec_23">Copy( srcUri, destUri, overwrite )</a>
160     <li> <a class="index" href="#sec_24">Delete( uri )</a>
161     <li> <a class="index" href="#sec_25">Move( srcUri, destUri, overwrite )</a>
162     <li> <a class="index" href="#sec_26">MkCol( uri )</a>
163     <li> <a class="index" href="#sec_27">PropFind( uri, scope )</a>
164     <li> <a class="index" href="#sec_28">Put( uri, filecontent )</a>
165     <li> <a class="index" href="#sec_29">Lock( uri, lockScope, lockType, lockOwner )</a>
166     <li> <a class="index" href="#sec_30">Unlock( uri, lockToken )</a>
167     </ul>
168     <li> <a class="index" href="#sec_31">Diagnostics and debug</a>
169     <ul>
170     <li> <a class="index" href="#sec_32">getStatus()</a>
171     <li> <a class="index" href="#sec_33">getStatusMessage()</a>
172     <li> <a class="index" href="#sec_34">setDebug( flags )</a>
173     <li> <a class="index" href="#sec_35">Other methods</a>
174     </ul>
175     <li> <a class="index" href="#sec_36">Changelog</a>
176     <li> <a class="index" href="#sec_37">References</a>
177    
178     </ul>
179     </ul>
180     </ul>
181     <a name="sec_4"><h3> Synopsis</h3></a>
182     <a name="sec_5"><h4> Exemple simple</h4></a>
183     <div class="code"><p class="text"> include &quot;Net/HTTP/Client.php&quot;;<br>
184     <br>
185     $http = new Net_HTTP_Client();<br>
186     $http-&gt;Connect( &quot;somehost&quot;, 80 ) or die( &quot;Connect problem&quot; );<br>
187     $status = $http-&gt;Get( &quot;/index.html&quot; );<br>
188     if( $status != 200 )<br>
189     die( &quot;Problem : &quot; . $http-&gt;getStatusMessage() );<br>
190     else<br>
191     echo $http-&gt;getBody();<br>
192     $http-&gt;Disconnect();<br>
193     </div>
194     <br>
195     </p><a name="sec_6"><h4> Utilisation d'une connexion persistente HTTP/1.1</h4></a>
196     <div class="code"><p class="text"> $http = new Net_HTTP_Client( &quot;dir.yahoo.com&quot;, 80 );<br>
197     $http-&gt;setProtocolVersion( &quot;1.1&quot; );<br>
198     $http-&gt;addHeader( &quot;Host&quot;, &quot;dir.yahoo.com&quot; );<br>
199     $http-&gt;addHeader( &quot;Connection&quot;, &quot;keep-alive&quot; );<br>
200     <br>
201     if( $http-&gt;Get( &quot;/Reference/Libraries/&quot; ) == 200 )<br>
202     $page1 = $http-&gt;getBody();<br>
203     <br>
204     if( $http-&gt;Get( &quot;/News_and_Media/&quot; ) == 200 )<br>
205     $page2 = $http-&gt;getBody();<br>
206     $http-&gt;disconnect();<br>
207     </div>
208     <br>
209     </p><a name="sec_7"><h3> M&eacute;thodes principales</h3></a>
210     <a name="sec_8"><h4> Net_HTTP_Client( [host, port] )</h4></a>
211     <p class="text"> Constructeur<br>
212     Les parametres host and port sont optionnels. Lorqu'ils sont d&eacute;finis, la connexion est initi&eacute;e imm&eacute;diatement.<br>
213     <strong>voir</strong> : Connect<br>
214     <br>
215     </p><a name="sec_9"><h4> Connect( host, port )</h4></a>
216     <p class="text"> Ouvre la connexion au serveur<br>
217     <span class="code">host</span> l'addresse du serveur<br>
218     <span class="code">port</span> le port du serveur, par defaut 80<br>
219     Renvoie true si succes, false si la connexion a &eacute;chou&eacute;e. Utilisez getStatusMessage pour examiner le message d'erreur.<br>
220     <br>
221     </p><a name="sec_10"><h4> Disconnect()</h4></a>
222     <p class="text"> Ferme la connexion.<br>
223     <br>
224     </p><a name="sec_11"><h4> setHeaders( headers )</h4></a>
225     <p class="text"> D&eacute;fini les ent&ecirc;tes HTTP &agrave; envoyer au serveur lors des requ&ecirc;tes suivnates.<br>
226     <span class="code">headers</span> un tableau associatif contenant les entêtes sous la forme "headerName" => "headerValue"<br>
227     Attention : Les nom d'ent&ecirc;te (headerName) sont case-sensitive pour l'instant dans ce composant.<br>
228     <br>
229     </p><a name="sec_12"><h4> removeHeader( headerName )</h4></a>
230     <p class="text"> retire l'ent&ecirc;te HTTP headerName<br>
231     <span class="code">headerName</span> le nom de l'entête<br>
232     <br>
233     </p><a name="sec_13"><h4> setCredentials( username, password )</h4></a>
234     <p class="text"> D&eacute;fini l'identifiant et le mot de passe pour les prochaines requ&ecirc;tes. A utiliser pour acc&eacute;der a des ressource prot&eacute;g&eacute;es sur le serveur.<br>
235     <span class="note">Seul le schéma d'autehtnication "Basic" est supporté actuellement</span><br>
236     <br>
237     <span class="code">username </span> l'identifiant<br>
238     <span class="code">password </span> Le mot de passe en clair<br>
239     <br>
240     </p><a name="sec_14"><h4> setProtocolVersion( version )</h4></a>
241     <p class="text"> Defini la version du protocole HTTP &agrave; utiliser.<br>
242     <span class="code">version</span> une chaine représentant la version, au choix: "0.9", "1.0", "1.1"<br>
243     renvoie false si la version est incorrecte<br>
244     <br>
245     </p><a name="sec_15"><h4> setProxy( proxyHost, proxyPort )</h4></a>
246     <p class="text"> Indique au composant d'utiliser un Proxy. Test&eacute; seulement sur les proxies HTTP (Squid etc.)<br>
247     <br>
248     <span class="code">proxyHost</span> l'adresse du proxy, <span class="code">proxyPort</span> le port du proxy, par ex. 80 ou 8080<br>
249     <br>
250     </p><a name="sec_16"><h4> addHeader( headerName, headerValue )</h4></a>
251     <p class="text"> Ajoute une ent&ecirc;te HTTP &agrave; envoyer lors des prochaines requ&ecirc;tes. headerName est &quot;case sensitive&quot;<br>
252     <span class="code">headerName</span> Nom de l'entête<br>
253     <span class="code">headerValue</span> Valeur de l'entête<br>
254     <br>
255     </p><a name="sec_16a"><h4> addCookie( cookieName, cookieValue )</h4></a>
256     <p class="text"> défini un cookie, utilisé lors des requ&ecirc;tes suivantes<br>Le cookie est de type "session".
257     Normalement les cookies sont définis par le serveur, mais ce hack permet par exemple de définir une session.
258     <span class="code">cookieName</span> Nom du cookie<br>
259     <span class="code">cookieValue</span> Valeur du cookie<br>
260     <small>[depuis v0.7]</small>
261     <br>
262     </p><a name="sec_16b"><h4> removeCookies( )</h4></a>
263     <p class="text"> supprime tous les cookies défini jusqu'alors.<br>
264     <small>[depuis v0.7]</small>
265     <br>
266     </p><a name="sec_17"><h4> Get( uri )</h4></a>
267     <p class="text"> Envoie une requ&ecirc;te GET<br>
268     <span class="code">$uri</span> L'URI, cad. le chemin du document relatif a la racine du serveur, exemple /index.html.<br>
269     Renvoie le code de statut re&ccedil;ue du serveur (200 si succ&egrave;s)<br>
270     Voir aussi getHeaders, getBody<br>
271     Get() accepte également une URL complète, dans ce cas il ouvre une connexion sur le serveur.<br>
272    
273     <div class="code">
274     // avec une URI<br>
275     $http-&gt;connect( "fr.yahoo.com" );<br>
276     $status = $http-&gt;Get( &quot;/&quot; );<br>
277    
278     // meme chose avec une URL<br>
279     $status = $http-&gt;Get( &quot;http://fr.yahoo.com/&quot; );<br>
280     </div>
281    
282    
283     <br>
284     </p><a name="sec_18"><h4> getHeaders()</h4></a>
285     <p class="text"> Renvoie les ent&ecirc;tes HTTP de la r&eacute;ponse. Les ent&ecirc;tes sont renvoy&eacute;s sous la forme<br>
286     d'un tableau associatif (nom =&gt; valeur ).<br>
287     A utiliser apr&egrave;s une requ&ecirc;te, par ex. pour examiner les ent&ecirc;tes du genre: Set-Cookie, Location ...<br>
288     <div class="code"> $status = $http-&gt;Get( &quot;/&quot; );<br>
289     ...<br>
290     // document is somewhere else<br>
291     if( $status == 301 || $status == 302 || $status == 307 )<br>
292     {<br>
293     $headers = $http-&gt;getHeaders();<br>
294     $status = $http-&gt;Get( $headers[&quot;Location&quot;] );<br>
295     }<br>
296     </div>
297     <br>
298     </p><a name="sec_19"><h4> getBody()</h4></a>
299     <p class="text"> Renvoie le corps de la r&eacute;ponse sous forme de chaine.<br>
300     <br>
301     </p><a name="sec_20"><h4> Head( uri )</h4></a>
302     <p class="text"> Envoie une requ&ecirc;te HEAD<br>
303     <span class="code">uri</span> est l'URI du document<br>
304     Renvoie le code de statut re&ccedil;ue du serveur (200 si succ&egrave;s)<br>
305     Pour examiner le contenu des headers, voir getResponseHeaders()<br>
306     <br>
307     </p><a name="sec_20a"><h4> Options( uri )</h4></a>
308     <p class="text"> Envoie une requ&ecirc;te OPTIONS<br>
309     <span class="code">uri</span> est l'URI du document, en général "/"<br>
310     Renvoie les options supportées par le serveur dans un tableau<br>
311     <small>[depuis v0.7]</small>
312     <br>
313     </p><a name="sec_21"><h4> Post( uri, query_params )</h4></a>
314     <p class="text"> Envoie une requ&ecirc;te POST<br>
315     <span class="code">uri</span> l'URI de la ressource<br>
316     <span class="code">query_params</span> un tableau associatif contenant les paramètres de la requête (par ex. du formulaire)<br>
317     Renvoie le code de statut re&ccedil;ue du serveur (200 si succ&egrave;s)<br>
318     <br>
319     <div class="code"> $params = array( &quot;login&quot; =&gt; &quot;scott&quot;, &quot;password&quot; =&gt; &quot;tiger&quot; );<br>
320     $status = $http-&gt;post( &quot;/login.php&quot;, $params );<br>
321     </div>
322     <br>
323     </p><a name="sec_22"><h3> M&eacute;thodes WebDAV</h3></a>
324     <a name="sec_23"><h4> Copy( srcUri, destUri, overwrite )</h4></a>
325     <p class="text"> Copie une ressource existante &agrave; un nouvel emplacement en utilisant la requ&ecirc;te COPY<br>
326     <br>
327     <span class="code">srcUri</span> l'emplacement actuel de la ressource sur le serveur. N'oubliez pas le / de tête.<br>
328     <span class="code">destUri</span> l'emplacement de destination. n'indiquez *pas* une URL complète!<br>
329     <span class="code">overwrite</span> true si la destination peut etre écrasée (défaut), false sinon<br>
330     Renvoie le code de statut re&ccedil;ue du serveur (204 si succ&egrave;s)<br>
331     <br>
332     <span class="code">$status = $http-&gt;Copy( "/sources/client.php", "/backup/client-0.4.php", true );</span><br>
333     <br>
334     </p><a name="sec_24"><h4> Delete( uri )</h4></a>
335     <p class="text"> Supprime une ressource sur le serveur en utilisant la requ&ecirc;te DELETE<br>
336     <span class="code">uri</span> URI de l'emplacement de la ressource sur le serveur.<br>
337     Renvoie le code de statut re&ccedil;ue du serveur (204 si succ&egrave;s)<br>
338     <br>
339     Note: Cette m&eacute;thode HTTP n'est pas toujours impl&eacute;ment&eacute;e sur les serveurs.<br>
340     <br>
341     </p><a name="sec_25"><h4> Move( srcUri, destUri, overwrite )</h4></a>
342     <p class="text"> D&eacute;place (renomme) une ressource sur le serveur en utilisant la requ&ecirc;te MOVE<br>
343     <span class="code">srcUri</span> l'emplacement actuel de la ressource sur le serveur. N'oubliez pas le / de tête.<br>
344     <span class="code">destUri</span> l'emplacement de destination. n'indiquez *pas* une URL complète!<br>
345     <span class="code">overwrite</span> true si la destination peut etre écrasée (défaut), false sinon<br>
346     Renvoie le code de statut re&ccedil;ue du serveur (204 si succ&egrave;s)<br>
347     <br>
348     </p><a name="sec_26"><h4> MkCol( uri )</h4></a>
349     <p class="text"> Cr&eacute;e une collection sur le serveur (g&eacute;n&eacute;ralement un repertoire) via une requ&ecirc;te MKCOL<br>
350     <span class="code">uri</span> URI relative de la collection<br>
351     Renvoie le code de statut, 201 (Created) si succ&egrave;s.<br>
352     <br>
353     </p><a name="sec_27"><h4> PropFind( uri, scope )</h4></a>
354     <p class="text"> R&eacute;cup&egrave;re un ensemble de meta-informations &agrave; propos d'une ressource sur le serveur<br>
355     La r&eacute;ponse au format XML n'est pas interpr&eacute;t&eacute;e, vous aurez &agrave; le faire dans votre code.<br>
356     <br>
357     <span class="code">uri</span> URI de la ressource<br>
358     <span class="code">scope</span> Défini le scope de la requête. 0 pour obtenir des infos sur le noeud seulement, 1 pour le noued et ses enfants directs, "Infinity" pour l'arborescence complète sous le noeud<br>
359     <br>
360     Renvoie le code de status, 207 (Multi-Status) si OK<br>
361     <br>
362     </p><a name="sec_28"><h4> Put( uri, filecontent )</h4></a>
363     <p class="text"> Envoie un fichier sur le serveur via la requ&ecirc;te PUT<br>
364     <span class="code">uri</span> l'emplacement de destiination du fichier sur le serveur. N'oubliez pas le / de tête<br>
365     <span class="code">filecontent</span> is the content of the file. binary content accepted<br>
366     Returns the status code as a string, 201 (Created) if OK.<br>
367     <br>
368     </p><a name="sec_29"><h4> Lock( uri, lockScope, lockType, lockOwner )</h4></a>
369     <p class="text"> <span class="note">WARNING: experimental</span><br>
370     Lock a ressource on the server and return 200 if locking went OK.<br>
371     The XML reply is not parsed for now [translate: Your help is welcome].<br>
372     <br>
373     <span class="code">uri </span> URL of the resource to lock<br>
374     <span class="code">lockScope </span> scope of the lock. Use "exclusive" for an private lock, "inclusive" for a shared lock.<br>
375     <span class="code">lockType </span> Access type for the lock : Use "write", ?<br>
376     <span class="code">lockOwner </span> An URL representing the owner of this lock<br>
377     <br>
378     <div class="code"> $reply = $http-&gt;Lock( &quot;/docs/manual.html&quot;, &quot;inclusive&quot;, &quot;write&quot;, &quot;leo@leo.com&quot; );<br>
379     if( $reply != 200 ) {<br>
380     $msg = $http-&gt;getStatusMessage();<br>
381     die( &quot;Unlock problem, server says $msg&quot; );<br>
382     } else {<br>
383     $xmlResponse = $http-&gt;getBody();<br>
384     // TODO : parse the XML response here<br>
385     }<br>
386     </div>
387     <br>
388     </p><a name="sec_30"><h4> Unlock( uri, lockToken )</h4></a>
389     <p class="text"> <span class="note">WARNING: experimental</span><br>
390     Release a lock on a remote file and return the response code (204 if unlock OK)<br>
391     <span class="code">uri</span> The relative URL of the resource to unlock<br>
392     <span class="code">lockToken</span> The lock token given at lock time, eg: opaquelocktoken:e71d4fae-5dec-22d6-fea5-00a0c91e6be4<br>
393     <br>
394     <div class="code"> $token = &quot;opaquelocktoken:e71d4fae-5dec-22d6-fea5-00a0c91e6be4&quot;;<br>
395     $reply = $http-&gt;Unlock( &quot;/docs/manual.html&quot;, $token );<br>
396     if( $reply != 204 ) {<br>
397     $msg = $http-&gt;getStatusMessage();<br>
398     die( &quot;Unlock problem, server says $msg&quot; );<br>
399     }<br>
400     </div>
401     <br>
402     </p><a name="sec_31"><h3> Diagnostics and debug</h3></a>
403     <a name="sec_32"><h4> getStatus()</h4></a>
404     <p class="text"> Return the server status code for the last request.<br>
405     HTTP codes are divided in classes (where x is a digit)<br>
406     <br>
407     - 20x : request processed OK<br>
408     - 30x : document moved<br>
409     - 40x : client error ( bad url, document not found, etc...)<br>
410     - 50x : server error<br>
411     <br>
412     </p><a name="sec_33"><h4> getStatusMessage()</h4></a>
413     <p class="text"> Returns the full response status of the last request, in the form &quot;CODE Message&quot;<br>
414     Example : <span class="code">404 Document not found</span><br>
415     <br>
416     </p><a name="sec_34"><h4> setDebug( flags )</h4></a>
417     <p class="text"> Turn on debug messages<br>
418     <span class="code">$client-&gt;setDebug( DBGTRACE | DBGINDATA );</span><br>
419     <br>
420     Flags is a bit mask of following debug modes:<br>
421     </p><!-- table --><table class="params">
422     <tr> <td class="params">DBGTRACE</td>
423     <td class="params">to trace methods calls stack</td>
424     </tr>
425     <tr> <td class="params">DBGINDATA</td>
426     <td class="params">to debug data received from server</td>
427     </tr>
428     <tr> <td class="params">DBGOUTDATA</td>
429     <td class="params">to debug data sent</td>
430     </tr>
431     <tr> <td class="params">DBGLOW</td>
432     <td class="params">to debug low-level (usually internal) methods</td>
433     </tr>
434     <tr> <td class="params">DBGSOCK</td>
435     <td class="params">to debug socket-level stuff</td>
436     </tr>
437     </table><a name="sec_35"><h4> Other methods</h4></a>
438     <p class="text"> sendCommand, makeURI, processReply, processHeader, processBody, readReply, flushReply<br>
439     These methods are private therefore not documented and USUALLY NOT FOR DIRECT USE.<br>
440     <br>
441     </p><a name="sec_36"><h3> Changelog</h3></a>
442     <p class="text"><pre>
443     0.1 initial version
444     0.2 documentation completed
445     + getHeaders(), getBody()
446     o Post(), Connect()
447     0.3 DAV enhancements:
448     + Put() method
449     0.4 continued DAV support
450     + Delete(), Move(), MkCol(), Propfind() methods
451     o added url property, remove host and port properties
452     o Connect, Net_HTTP_Client (use of this.url)
453     o processBody() : use non-blocking to fix a socket pblm
454     0.5 debug support
455     + setDebug()
456     + debug levels definitions (DBG*)
457     0.6 + Lock() method
458     + setCredentials() method and fix - thanks Thomas Olsen
459     + support for Get( full_url )
460     o fix POST call (duplicate content-length) - thanks to Javier Sixto
461     0.7 + OPTIONS method support
462     + addCookie and removeCookies methods
463     o fix the "0" problem
464     o fix undefined variable warning
465     </pre>
466     </p><a name="sec_37"><h3> References</h3></a>
467     <p class="text"> RFC2616 &quot;Hypertext Transfer Protocol -- HTTP/1.1&quot;<br>
468     <a href="http://lwest.free.fr/doc/protocols/http/rfc2616.html" target="_new">http://lwest.free.fr/doc/protocols/http/rfc2616.html</a><br>
469     <br>
470     RFC2518 &quot;HTTP Extensions for Distributed Authoring WEBDAV&quot;<br>
471     <a href="http://lwest.free.fr/doc/protocols/http/rfc2518.html" target="_new">http://lwest.free.fr/doc/protocols/http/rfc2518.html</a><br>
472     <br>
473     WebDAV Community Site<br>
474     <a href="http://www.webdav.org" target="_new">http://www.webdav.org</a><br>
475     <br>
476     </body>
477     </html>
478    

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed