OLD | NEW |
| (Empty) |
1 Httplib2 | |
2 | |
3 -------------------------------------------------------------------- | |
4 Introduction | |
5 | |
6 A comprehensive HTTP client library, httplib2.py supports many | |
7 features left out of other HTTP libraries. | |
8 | |
9 HTTP and HTTPS | |
10 HTTPS support is only available if the socket module was | |
11 compiled with SSL support. | |
12 Keep-Alive | |
13 Supports HTTP 1.1 Keep-Alive, keeping the socket open and | |
14 performing multiple requests over the same connection if | |
15 possible. | |
16 Authentication | |
17 The following three types of HTTP Authentication are | |
18 supported. These can be used over both HTTP and HTTPS. | |
19 | |
20 * Digest | |
21 * Basic | |
22 * WSSE | |
23 | |
24 Caching | |
25 The module can optionally operate with a private cache that | |
26 understands the Cache-Control: header and uses both the ETag | |
27 and Last-Modified cache validators. | |
28 All Methods | |
29 The module can handle any HTTP request method, not just GET | |
30 and POST. | |
31 Redirects | |
32 Automatically follows 3XX redirects on GETs. | |
33 Compression | |
34 Handles both 'deflate' and 'gzip' types of compression. | |
35 Lost update support | |
36 Automatically adds back ETags into PUT requests to resources | |
37 we have already cached. This implements Section 3.2 of | |
38 Detecting the Lost Update Problem Using Unreserved Checkout. | |
39 Unit Tested | |
40 A large and growing set of unit tests. | |
41 | |
42 | |
43 For more information on this module, see: | |
44 | |
45 http://bitworking.org/projects/httplib2/ | |
46 | |
47 | |
48 -------------------------------------------------------------------- | |
49 Installation | |
50 | |
51 The httplib2 module is shipped as a distutils package. To install | |
52 the library, unpack the distribution archive, and issue the following | |
53 command: | |
54 | |
55 $ python setup.py install | |
56 | |
57 | |
58 -------------------------------------------------------------------- | |
59 Usage | |
60 A simple retrieval: | |
61 | |
62 import httplib2 | |
63 h = httplib2.Http(".cache") | |
64 (resp_headers, content) = h.request("http://example.org/", "GET") | |
65 | |
66 The 'content' is the content retrieved from the URL. The content | |
67 is already decompressed or unzipped if necessary. | |
68 | |
69 To PUT some content to a server that uses SSL and Basic authentication: | |
70 | |
71 import httplib2 | |
72 h = httplib2.Http(".cache") | |
73 h.add_credentials('name', 'password') | |
74 (resp, content) = h.request("https://example.org/chapter/2", | |
75 "PUT", body="This is text", | |
76 headers={'content-type':'text/plain'} ) | |
77 | |
78 Use the Cache-Control: header to control how the caching operates. | |
79 | |
80 import httplib2 | |
81 h = httplib2.Http(".cache") | |
82 (resp, content) = h.request("http://bitworking.org/", "GET") | |
83 ... | |
84 (resp, content) = h.request("http://bitworking.org/", "GET", | |
85 headers={'cache-control':'no-cache'}) | |
86 | |
87 The first request will be cached and since this is a request | |
88 to bitworking.org it will be set to be cached for two hours, | |
89 because that is how I have my server configured. Any subsequent | |
90 GET to that URI will return the value from the on-disk cache | |
91 and no request will be made to the server. You can use the | |
92 Cache-Control: header to change the caches behavior and in | |
93 this example the second request adds the Cache-Control: | |
94 header with a value of 'no-cache' which tells the library | |
95 that the cached copy must not be used when handling this request. | |
96 | |
97 | |
98 -------------------------------------------------------------------- | |
99 Httplib2 Software License | |
100 | |
101 Copyright (c) 2006 by Joe Gregorio | |
102 | |
103 Permission is hereby granted, free of charge, to any person | |
104 obtaining a copy of this software and associated documentation | |
105 files (the "Software"), to deal in the Software without restriction, | |
106 including without limitation the rights to use, copy, modify, merge, | |
107 publish, distribute, sublicense, and/or sell copies of the Software, | |
108 and to permit persons to whom the Software is furnished to do so, | |
109 subject to the following conditions: | |
110 | |
111 The above copyright notice and this permission notice shall be | |
112 included in all copies or substantial portions of the Software. | |
113 | |
114 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | |
115 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | |
116 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | |
117 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS | |
118 BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | |
119 ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | |
120 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | |
121 SOFTWARE. | |
122 | |
OLD | NEW |