blob: 7a75b720c4aa3409d44572424f8f12917cafbcf4 [file] [log] [blame]
John Asmuth614db982014-04-24 15:46:26 -04001<?xml version="1.0" encoding="ascii"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3 "DTD/xhtml1-transitional.dtd">
4<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5<head>
6 <title>googleapiclient.http</title>
7 <link rel="stylesheet" href="epydoc.css" type="text/css" />
8 <script type="text/javascript" src="epydoc.js"></script>
9</head>
10
11<body bgcolor="white" text="black" link="blue" vlink="#204080"
12 alink="#204080">
13<!-- ==================== NAVIGATION BAR ==================== -->
14<table class="navbar" border="0" width="100%" cellpadding="0"
15 bgcolor="#a0c0ff" cellspacing="0">
16 <tr valign="middle">
17 <!-- Home link -->
18 <th>&nbsp;&nbsp;&nbsp;<a
19 href="googleapiclient-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
20
21 <!-- Tree link -->
22 <th>&nbsp;&nbsp;&nbsp;<a
23 href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
24
25 <!-- Index link -->
26 <th>&nbsp;&nbsp;&nbsp;<a
27 href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
28
29 <!-- Help link -->
30 <th>&nbsp;&nbsp;&nbsp;<a
31 href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
32
33 <th class="navbar" width="100%"></th>
34 </tr>
35</table>
36<table width="100%" cellpadding="0" cellspacing="0">
37 <tr valign="top">
38 <td width="100%">
39 <span class="breadcrumbs">
40 <a href="googleapiclient-module.html">Package&nbsp;googleapiclient</a> ::
41 Module&nbsp;http
42 </span>
43 </td>
44 <td>
45 <table cellpadding="0" cellspacing="0">
46 <!-- hide/show private -->
47 <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
48 onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
49 <tr><td align="right"><span class="options"
50 >[<a href="frames.html" target="_top">frames</a
51 >]&nbsp;|&nbsp;<a href="googleapiclient.http-module.html"
52 target="_top">no&nbsp;frames</a>]</span></td></tr>
53 </table>
54 </td>
55 </tr>
56</table>
57<!-- ==================== MODULE DESCRIPTION ==================== -->
58<h1 class="epydoc">Module http</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient.http-pysrc.html">source&nbsp;code</a></span></p>
59<pre class="literalblock">
60Classes to encapsulate a single HTTP request.
61
62The classes implement a command pattern, with every
63object supporting an execute() method that does the
64actuall HTTP request.
65
66</pre>
67
68<hr />
69<div class="fields"> <p><strong>Author:</strong>
70 jcgregorio@google.com (Joe Gregorio)
71 </p>
72</div><!-- ==================== CLASSES ==================== -->
73<a name="section-Classes"></a>
74<table class="summary" border="1" cellpadding="3"
75 cellspacing="0" width="100%" bgcolor="white">
76<tr bgcolor="#70b0f0" class="table-header">
77 <td colspan="2" class="table-header">
78 <table border="0" cellpadding="0" cellspacing="0" width="100%">
79 <tr valign="top">
80 <td align="left"><span class="table-header">Classes</span></td>
81 <td align="right" valign="top"
82 ><span class="options">[<a href="#section-Classes"
83 class="privatelink" onclick="toggle_private();"
84 >hide private</a>]</span></td>
85 </tr>
86 </table>
87 </td>
88</tr>
89<tr>
90 <td width="15%" align="right" valign="top" class="summary">
91 <span class="summary-type">&nbsp;</span>
92 </td><td class="summary">
93 <a href="googleapiclient.http.MediaUploadProgress-class.html" class="summary-name">MediaUploadProgress</a><br />
94 Status of a resumable upload.
95 </td>
96 </tr>
97<tr>
98 <td width="15%" align="right" valign="top" class="summary">
99 <span class="summary-type">&nbsp;</span>
100 </td><td class="summary">
101 <a href="googleapiclient.http.MediaDownloadProgress-class.html" class="summary-name">MediaDownloadProgress</a><br />
102 Status of a resumable download.
103 </td>
104 </tr>
105<tr>
106 <td width="15%" align="right" valign="top" class="summary">
107 <span class="summary-type">&nbsp;</span>
108 </td><td class="summary">
109 <a href="googleapiclient.http.MediaUpload-class.html" class="summary-name">MediaUpload</a><br />
110 Describes a media object to upload.
111 </td>
112 </tr>
113<tr>
114 <td width="15%" align="right" valign="top" class="summary">
115 <span class="summary-type">&nbsp;</span>
116 </td><td class="summary">
117 <a href="googleapiclient.http.MediaIoBaseUpload-class.html" class="summary-name">MediaIoBaseUpload</a><br />
118 A MediaUpload for a io.Base objects.
119 </td>
120 </tr>
121<tr>
122 <td width="15%" align="right" valign="top" class="summary">
123 <span class="summary-type">&nbsp;</span>
124 </td><td class="summary">
125 <a href="googleapiclient.http.MediaFileUpload-class.html" class="summary-name">MediaFileUpload</a><br />
126 A MediaUpload for a file.
127 </td>
128 </tr>
129<tr>
130 <td width="15%" align="right" valign="top" class="summary">
131 <span class="summary-type">&nbsp;</span>
132 </td><td class="summary">
133 <a href="googleapiclient.http.MediaInMemoryUpload-class.html" class="summary-name">MediaInMemoryUpload</a><br />
134 MediaUpload for a chunk of bytes.
135 </td>
136 </tr>
137<tr>
138 <td width="15%" align="right" valign="top" class="summary">
139 <span class="summary-type">&nbsp;</span>
140 </td><td class="summary">
141 <a href="googleapiclient.http.MediaIoBaseDownload-class.html" class="summary-name">MediaIoBaseDownload</a><br />
142 &quot;Download media resources.
143 </td>
144 </tr>
145<tr class="private">
146 <td width="15%" align="right" valign="top" class="summary">
147 <span class="summary-type">&nbsp;</span>
148 </td><td class="summary">
149 <a href="googleapiclient.http._StreamSlice-class.html" class="summary-name" onclick="show_private();">_StreamSlice</a><br />
150 Truncated stream.
151 </td>
152 </tr>
153<tr>
154 <td width="15%" align="right" valign="top" class="summary">
155 <span class="summary-type">&nbsp;</span>
156 </td><td class="summary">
157 <a href="googleapiclient.http.HttpRequest-class.html" class="summary-name">HttpRequest</a><br />
158 Encapsulates a single HTTP request.
159 </td>
160 </tr>
161<tr>
162 <td width="15%" align="right" valign="top" class="summary">
163 <span class="summary-type">&nbsp;</span>
164 </td><td class="summary">
165 <a href="googleapiclient.http.BatchHttpRequest-class.html" class="summary-name">BatchHttpRequest</a><br />
166 Batches multiple HttpRequest objects into a single HTTP request.
167 </td>
168 </tr>
169<tr>
170 <td width="15%" align="right" valign="top" class="summary">
171 <span class="summary-type">&nbsp;</span>
172 </td><td class="summary">
173 <a href="googleapiclient.http.HttpRequestMock-class.html" class="summary-name">HttpRequestMock</a><br />
174 Mock of HttpRequest.
175 </td>
176 </tr>
177<tr>
178 <td width="15%" align="right" valign="top" class="summary">
179 <span class="summary-type">&nbsp;</span>
180 </td><td class="summary">
181 <a href="googleapiclient.http.RequestMockBuilder-class.html" class="summary-name">RequestMockBuilder</a><br />
182 A simple mock of HttpRequest
183 </td>
184 </tr>
185<tr>
186 <td width="15%" align="right" valign="top" class="summary">
187 <span class="summary-type">&nbsp;</span>
188 </td><td class="summary">
189 <a href="googleapiclient.http.HttpMock-class.html" class="summary-name">HttpMock</a><br />
190 Mock of httplib2.Http
191 </td>
192 </tr>
193<tr>
194 <td width="15%" align="right" valign="top" class="summary">
195 <span class="summary-type">&nbsp;</span>
196 </td><td class="summary">
197 <a href="googleapiclient.http.HttpMockSequence-class.html" class="summary-name">HttpMockSequence</a><br />
198 Mock of httplib2.Http
199 </td>
200 </tr>
201</table>
202<!-- ==================== FUNCTIONS ==================== -->
203<a name="section-Functions"></a>
204<table class="summary" border="1" cellpadding="3"
205 cellspacing="0" width="100%" bgcolor="white">
206<tr bgcolor="#70b0f0" class="table-header">
207 <td colspan="2" class="table-header">
208 <table border="0" cellpadding="0" cellspacing="0" width="100%">
209 <tr valign="top">
210 <td align="left"><span class="table-header">Functions</span></td>
211 <td align="right" valign="top"
212 ><span class="options">[<a href="#section-Functions"
213 class="privatelink" onclick="toggle_private();"
214 >hide private</a>]</span></td>
215 </tr>
216 </table>
217 </td>
218</tr>
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -0800219<tr class="private">
220 <td width="15%" align="right" valign="top" class="summary">
221 <span class="summary-type">&nbsp;</span>
222 </td><td class="summary">
223 <table width="100%" cellpadding="0" cellspacing="0" border="0">
224 <tr>
Jon Wayne Parrott0a471d32016-05-19 10:54:38 -0700225 <td><span class="summary-sig"><a href="googleapiclient.http-module.html#_should_retry_response" class="summary-sig-name" onclick="show_private();">_should_retry_response</a>(<span class="summary-sig-arg">resp_status</span>,
226 <span class="summary-sig-arg">content</span>)</span><br />
227 Determines whether a response should be retried.</td>
228 <td align="right" valign="top">
229 <span class="codelink"><a href="googleapiclient.http-pysrc.html#_should_retry_response">source&nbsp;code</a></span>
230
231 </td>
232 </tr>
233 </table>
234
235 </td>
236 </tr>
237<tr class="private">
238 <td width="15%" align="right" valign="top" class="summary">
239 <span class="summary-type">&nbsp;</span>
240 </td><td class="summary">
241 <table width="100%" cellpadding="0" cellspacing="0" border="0">
242 <tr>
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -0800243 <td><span class="summary-sig"><a href="googleapiclient.http-module.html#_retry_request" class="summary-sig-name" onclick="show_private();">_retry_request</a>(<span class="summary-sig-arg">http</span>,
244 <span class="summary-sig-arg">num_retries</span>,
245 <span class="summary-sig-arg">req_type</span>,
246 <span class="summary-sig-arg">sleep</span>,
247 <span class="summary-sig-arg">rand</span>,
248 <span class="summary-sig-arg">uri</span>,
249 <span class="summary-sig-arg">method</span>,
250 <span class="summary-sig-arg">*args</span>,
251 <span class="summary-sig-arg">**kwargs</span>)</span><br />
252 Retries an HTTP request multiple times while handling errors.</td>
253 <td align="right" valign="top">
254 <span class="codelink"><a href="googleapiclient.http-pysrc.html#_retry_request">source&nbsp;code</a></span>
255
256 </td>
257 </tr>
258 </table>
259
260 </td>
261 </tr>
John Asmuth614db982014-04-24 15:46:26 -0400262<tr>
263 <td width="15%" align="right" valign="top" class="summary">
264 <span class="summary-type">&nbsp;</span>
265 </td><td class="summary">
266 <table width="100%" cellpadding="0" cellspacing="0" border="0">
267 <tr>
268 <td><span class="summary-sig"><a href="googleapiclient.http-module.html#set_user_agent" class="summary-sig-name">set_user_agent</a>(<span class="summary-sig-arg">http</span>,
269 <span class="summary-sig-arg">user_agent</span>)</span><br />
270 Set the user-agent on every request.</td>
271 <td align="right" valign="top">
272 <span class="codelink"><a href="googleapiclient.http-pysrc.html#set_user_agent">source&nbsp;code</a></span>
273
274 </td>
275 </tr>
276 </table>
277
278 </td>
279 </tr>
280<tr>
281 <td width="15%" align="right" valign="top" class="summary">
282 <span class="summary-type">&nbsp;</span>
283 </td><td class="summary">
284 <table width="100%" cellpadding="0" cellspacing="0" border="0">
285 <tr>
286 <td><span class="summary-sig"><a href="googleapiclient.http-module.html#tunnel_patch" class="summary-sig-name">tunnel_patch</a>(<span class="summary-sig-arg">http</span>)</span><br />
287 Tunnel PATCH requests over POST.</td>
288 <td align="right" valign="top">
289 <span class="codelink"><a href="googleapiclient.http-pysrc.html#tunnel_patch">source&nbsp;code</a></span>
290
291 </td>
292 </tr>
293 </table>
294
295 </td>
296 </tr>
297</table>
298<!-- ==================== VARIABLES ==================== -->
299<a name="section-Variables"></a>
300<table class="summary" border="1" cellpadding="3"
301 cellspacing="0" width="100%" bgcolor="white">
302<tr bgcolor="#70b0f0" class="table-header">
303 <td colspan="2" class="table-header">
304 <table border="0" cellpadding="0" cellspacing="0" width="100%">
305 <tr valign="top">
306 <td align="left"><span class="table-header">Variables</span></td>
307 <td align="right" valign="top"
308 ><span class="options">[<a href="#section-Variables"
309 class="privatelink" onclick="toggle_private();"
310 >hide private</a>]</span></td>
311 </tr>
312 </table>
313 </td>
314</tr>
Jon Wayne Parrott0a471d32016-05-19 10:54:38 -0700315<tr class="private">
316 <td width="15%" align="right" valign="top" class="summary">
317 <span class="summary-type">&nbsp;</span>
318 </td><td class="summary">
319 <a name="_ssl_SSLError"></a><span class="summary-name">_ssl_SSLError</span> = <code title="ssl.SSLError">ssl.SSLError</code>
320 </td>
321 </tr>
322<tr>
323 <td width="15%" align="right" valign="top" class="summary">
324 <span class="summary-type">&nbsp;</span>
325 </td><td class="summary">
326 <a name="LOGGER"></a><span class="summary-name">LOGGER</span> = <code title="logging.getLogger(__name__)">logging.getLogger(__name__)</code>
327 </td>
328 </tr>
John Asmuth614db982014-04-24 15:46:26 -0400329<tr>
330 <td width="15%" align="right" valign="top" class="summary">
331 <span class="summary-type">&nbsp;</span>
332 </td><td class="summary">
333 <a name="DEFAULT_CHUNK_SIZE"></a><span class="summary-name">DEFAULT_CHUNK_SIZE</span> = <code title="512* 1024">512* 1024</code>
334 </td>
335 </tr>
336<tr>
337 <td width="15%" align="right" valign="top" class="summary">
338 <span class="summary-type">&nbsp;</span>
339 </td><td class="summary">
340 <a name="MAX_URI_LENGTH"></a><span class="summary-name">MAX_URI_LENGTH</span> = <code title="2048">2048</code>
341 </td>
342 </tr>
Jon Wayne Parrott0a471d32016-05-19 10:54:38 -0700343<tr class="private">
344 <td width="15%" align="right" valign="top" class="summary">
345 <span class="summary-type">&nbsp;</span>
346 </td><td class="summary">
347 <a name="_TOO_MANY_REQUESTS"></a><span class="summary-name">_TOO_MANY_REQUESTS</span> = <code title="429">429</code>
348 </td>
349 </tr>
John Asmuth614db982014-04-24 15:46:26 -0400350</table>
351<!-- ==================== FUNCTION DETAILS ==================== -->
352<a name="section-FunctionDetails"></a>
353<table class="details" border="1" cellpadding="3"
354 cellspacing="0" width="100%" bgcolor="white">
355<tr bgcolor="#70b0f0" class="table-header">
356 <td colspan="2" class="table-header">
357 <table border="0" cellpadding="0" cellspacing="0" width="100%">
358 <tr valign="top">
359 <td align="left"><span class="table-header">Function Details</span></td>
360 <td align="right" valign="top"
361 ><span class="options">[<a href="#section-FunctionDetails"
362 class="privatelink" onclick="toggle_private();"
363 >hide private</a>]</span></td>
364 </tr>
365 </table>
366 </td>
367</tr>
368</table>
Jon Wayne Parrott0a471d32016-05-19 10:54:38 -0700369<a name="_should_retry_response"></a>
370<div class="private">
371<table class="details" border="1" cellpadding="3"
372 cellspacing="0" width="100%" bgcolor="white">
373<tr><td>
374 <table width="100%" cellpadding="0" cellspacing="0" border="0">
375 <tr valign="top"><td>
376 <h3 class="epydoc"><span class="sig"><span class="sig-name">_should_retry_response</span>(<span class="sig-arg">resp_status</span>,
377 <span class="sig-arg">content</span>)</span>
378 </h3>
379 </td><td align="right" valign="top"
380 ><span class="codelink"><a href="googleapiclient.http-pysrc.html#_should_retry_response">source&nbsp;code</a></span>&nbsp;
381 </td>
382 </tr></table>
383
384 <pre class="literalblock">
385Determines whether a response should be retried.
386
387Args:
388 resp_status: The response status received.
389 content: The response content body.
390
391Returns:
392 True if the response should be retried, otherwise False.
393
394</pre>
395 <dl class="fields">
396 </dl>
397</td></tr></table>
398</div>
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -0800399<a name="_retry_request"></a>
400<div class="private">
401<table class="details" border="1" cellpadding="3"
402 cellspacing="0" width="100%" bgcolor="white">
403<tr><td>
404 <table width="100%" cellpadding="0" cellspacing="0" border="0">
405 <tr valign="top"><td>
406 <h3 class="epydoc"><span class="sig"><span class="sig-name">_retry_request</span>(<span class="sig-arg">http</span>,
407 <span class="sig-arg">num_retries</span>,
408 <span class="sig-arg">req_type</span>,
409 <span class="sig-arg">sleep</span>,
410 <span class="sig-arg">rand</span>,
411 <span class="sig-arg">uri</span>,
412 <span class="sig-arg">method</span>,
413 <span class="sig-arg">*args</span>,
414 <span class="sig-arg">**kwargs</span>)</span>
415 </h3>
416 </td><td align="right" valign="top"
417 ><span class="codelink"><a href="googleapiclient.http-pysrc.html#_retry_request">source&nbsp;code</a></span>&nbsp;
418 </td>
419 </tr></table>
420
421 <pre class="literalblock">
422Retries an HTTP request multiple times while handling errors.
423
424If after all retries the request still fails, last error is either returned as
425return value (for HTTP 5xx errors) or thrown (for ssl.SSLError).
426
427Args:
428 http: Http object to be used to execute request.
429 num_retries: Maximum number of retries.
430 req_type: Type of the request (used for logging retries).
431 sleep, rand: Functions to sleep for random time between retries.
432 uri: URI to be requested.
433 method: HTTP method to be used.
434 args, kwargs: Additional arguments passed to http.request.
435
436Returns:
437 resp, content - Response from the http request (may be HTTP 5xx).
438
439</pre>
440 <dl class="fields">
441 </dl>
442</td></tr></table>
443</div>
John Asmuth614db982014-04-24 15:46:26 -0400444<a name="set_user_agent"></a>
445<div>
446<table class="details" border="1" cellpadding="3"
447 cellspacing="0" width="100%" bgcolor="white">
448<tr><td>
449 <table width="100%" cellpadding="0" cellspacing="0" border="0">
450 <tr valign="top"><td>
451 <h3 class="epydoc"><span class="sig"><span class="sig-name">set_user_agent</span>(<span class="sig-arg">http</span>,
452 <span class="sig-arg">user_agent</span>)</span>
453 </h3>
454 </td><td align="right" valign="top"
455 ><span class="codelink"><a href="googleapiclient.http-pysrc.html#set_user_agent">source&nbsp;code</a></span>&nbsp;
456 </td>
457 </tr></table>
458
459 <pre class="literalblock">
460Set the user-agent on every request.
461
462Args:
463 http - An instance of httplib2.Http
464 or something that acts like it.
465 user_agent: string, the value for the user-agent header.
466
467Returns:
468 A modified instance of http that was passed in.
469
470Example:
471
472 h = httplib2.Http()
473 h = set_user_agent(h, &quot;my-app-name/6.0&quot;)
474
475Most of the time the user-agent will be set doing auth, this is for the rare
476cases where you are accessing an unauthenticated endpoint.
477
478</pre>
479 <dl class="fields">
480 </dl>
481</td></tr></table>
482</div>
483<a name="tunnel_patch"></a>
484<div>
485<table class="details" border="1" cellpadding="3"
486 cellspacing="0" width="100%" bgcolor="white">
487<tr><td>
488 <table width="100%" cellpadding="0" cellspacing="0" border="0">
489 <tr valign="top"><td>
490 <h3 class="epydoc"><span class="sig"><span class="sig-name">tunnel_patch</span>(<span class="sig-arg">http</span>)</span>
491 </h3>
492 </td><td align="right" valign="top"
493 ><span class="codelink"><a href="googleapiclient.http-pysrc.html#tunnel_patch">source&nbsp;code</a></span>&nbsp;
494 </td>
495 </tr></table>
496
497 <pre class="literalblock">
498Tunnel PATCH requests over POST.
499Args:
500 http - An instance of httplib2.Http
501 or something that acts like it.
502
503Returns:
504 A modified instance of http that was passed in.
505
506Example:
507
508 h = httplib2.Http()
509 h = tunnel_patch(h, &quot;my-app-name/6.0&quot;)
510
511Useful if you are running on a platform that doesn't support PATCH.
512Apply this last if you are using OAuth 1.0, as changing the method
513will result in a different signature.
514
515</pre>
516 <dl class="fields">
517 </dl>
518</td></tr></table>
519</div>
520<br />
521<!-- ==================== NAVIGATION BAR ==================== -->
522<table class="navbar" border="0" width="100%" cellpadding="0"
523 bgcolor="#a0c0ff" cellspacing="0">
524 <tr valign="middle">
525 <!-- Home link -->
526 <th>&nbsp;&nbsp;&nbsp;<a
527 href="googleapiclient-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
528
529 <!-- Tree link -->
530 <th>&nbsp;&nbsp;&nbsp;<a
531 href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
532
533 <!-- Index link -->
534 <th>&nbsp;&nbsp;&nbsp;<a
535 href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
536
537 <!-- Help link -->
538 <th>&nbsp;&nbsp;&nbsp;<a
539 href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
540
541 <th class="navbar" width="100%"></th>
542 </tr>
543</table>
544<table border="0" cellpadding="0" cellspacing="0" width="100%%">
545 <tr>
546 <td align="left" class="footer">
Jon Wayne Parrott692617a2017-01-06 09:58:29 -0800547 Generated by Epydoc 3.0.1 on Thu Jan 5 12:55:02 2017
John Asmuth614db982014-04-24 15:46:26 -0400548 </td>
549 <td align="right" class="footer">
550 <a target="mainFrame" href="http://epydoc.sourceforge.net"
551 >http://epydoc.sourceforge.net</a>
552 </td>
553 </tr>
554</table>
555
556<script type="text/javascript">
557 <!--
558 // Private objects are initially displayed (because if
559 // javascript is turned off then we want them to be
560 // visible); but by default, we want to hide them. So hide
561 // them unless we have a cookie that says to show them.
562 checkCookie();
563 // -->
564</script>
565</body>
566</html>