Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/httpx/_api.py: 59%
Shortcuts on this page
r m x toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
Shortcuts on this page
r m x toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1from __future__ import annotations
3import typing
4from contextlib import contextmanager
6from ._client import Client
7from ._config import DEFAULT_TIMEOUT_CONFIG
8from ._models import Response
9from ._types import (
10 AuthTypes,
11 CertTypes,
12 CookieTypes,
13 HeaderTypes,
14 ProxiesTypes,
15 ProxyTypes,
16 QueryParamTypes,
17 RequestContent,
18 RequestData,
19 RequestFiles,
20 TimeoutTypes,
21 URLTypes,
22 VerifyTypes,
23)
26def request(
27 method: str,
28 url: URLTypes,
29 *,
30 params: QueryParamTypes | None = None,
31 content: RequestContent | None = None,
32 data: RequestData | None = None,
33 files: RequestFiles | None = None,
34 json: typing.Any | None = None,
35 headers: HeaderTypes | None = None,
36 cookies: CookieTypes | None = None,
37 auth: AuthTypes | None = None,
38 proxy: ProxyTypes | None = None,
39 proxies: ProxiesTypes | None = None,
40 timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG,
41 follow_redirects: bool = False,
42 verify: VerifyTypes = True,
43 cert: CertTypes | None = None,
44 trust_env: bool = True,
45) -> Response:
46 """
47 Sends an HTTP request.
49 **Parameters:**
51 * **method** - HTTP method for the new `Request` object: `GET`, `OPTIONS`,
52 `HEAD`, `POST`, `PUT`, `PATCH`, or `DELETE`.
53 * **url** - URL for the new `Request` object.
54 * **params** - *(optional)* Query parameters to include in the URL, as a
55 string, dictionary, or sequence of two-tuples.
56 * **content** - *(optional)* Binary content to include in the body of the
57 request, as bytes or a byte iterator.
58 * **data** - *(optional)* Form data to include in the body of the request,
59 as a dictionary.
60 * **files** - *(optional)* A dictionary of upload files to include in the
61 body of the request.
62 * **json** - *(optional)* A JSON serializable object to include in the body
63 of the request.
64 * **headers** - *(optional)* Dictionary of HTTP headers to include in the
65 request.
66 * **cookies** - *(optional)* Dictionary of Cookie items to include in the
67 request.
68 * **auth** - *(optional)* An authentication class to use when sending the
69 request.
70 * **proxy** - *(optional)* A proxy URL where all the traffic should be routed.
71 * **proxies** - *(optional)* A dictionary mapping proxy keys to proxy URLs.
72 * **timeout** - *(optional)* The timeout configuration to use when sending
73 the request.
74 * **follow_redirects** - *(optional)* Enables or disables HTTP redirects.
75 * **verify** - *(optional)* SSL certificates (a.k.a CA bundle) used to
76 verify the identity of requested hosts. Either `True` (default CA bundle),
77 a path to an SSL certificate file, an `ssl.SSLContext`, or `False`
78 (which will disable verification).
79 * **cert** - *(optional)* An SSL certificate used by the requested host
80 to authenticate the client. Either a path to an SSL certificate file, or
81 two-tuple of (certificate file, key file), or a three-tuple of (certificate
82 file, key file, password).
83 * **trust_env** - *(optional)* Enables or disables usage of environment
84 variables for configuration.
86 **Returns:** `Response`
88 Usage:
90 ```
91 >>> import httpx
92 >>> response = httpx.request('GET', 'https://httpbin.org/get')
93 >>> response
94 <Response [200 OK]>
95 ```
96 """
97 with Client(
98 cookies=cookies,
99 proxy=proxy,
100 proxies=proxies,
101 cert=cert,
102 verify=verify,
103 timeout=timeout,
104 trust_env=trust_env,
105 ) as client:
106 return client.request(
107 method=method,
108 url=url,
109 content=content,
110 data=data,
111 files=files,
112 json=json,
113 params=params,
114 headers=headers,
115 auth=auth,
116 follow_redirects=follow_redirects,
117 )
120@contextmanager
121def stream(
122 method: str,
123 url: URLTypes,
124 *,
125 params: QueryParamTypes | None = None,
126 content: RequestContent | None = None,
127 data: RequestData | None = None,
128 files: RequestFiles | None = None,
129 json: typing.Any | None = None,
130 headers: HeaderTypes | None = None,
131 cookies: CookieTypes | None = None,
132 auth: AuthTypes | None = None,
133 proxy: ProxyTypes | None = None,
134 proxies: ProxiesTypes | None = None,
135 timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG,
136 follow_redirects: bool = False,
137 verify: VerifyTypes = True,
138 cert: CertTypes | None = None,
139 trust_env: bool = True,
140) -> typing.Iterator[Response]:
141 """
142 Alternative to `httpx.request()` that streams the response body
143 instead of loading it into memory at once.
145 **Parameters**: See `httpx.request`.
147 See also: [Streaming Responses][0]
149 [0]: /quickstart#streaming-responses
150 """
151 with Client(
152 cookies=cookies,
153 proxy=proxy,
154 proxies=proxies,
155 cert=cert,
156 verify=verify,
157 timeout=timeout,
158 trust_env=trust_env,
159 ) as client:
160 with client.stream(
161 method=method,
162 url=url,
163 content=content,
164 data=data,
165 files=files,
166 json=json,
167 params=params,
168 headers=headers,
169 auth=auth,
170 follow_redirects=follow_redirects,
171 ) as response:
172 yield response
175def get(
176 url: URLTypes,
177 *,
178 params: QueryParamTypes | None = None,
179 headers: HeaderTypes | None = None,
180 cookies: CookieTypes | None = None,
181 auth: AuthTypes | None = None,
182 proxy: ProxyTypes | None = None,
183 proxies: ProxiesTypes | None = None,
184 follow_redirects: bool = False,
185 cert: CertTypes | None = None,
186 verify: VerifyTypes = True,
187 timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG,
188 trust_env: bool = True,
189) -> Response:
190 """
191 Sends a `GET` request.
193 **Parameters**: See `httpx.request`.
195 Note that the `data`, `files`, `json` and `content` parameters are not available
196 on this function, as `GET` requests should not include a request body.
197 """
198 return request(
199 "GET",
200 url,
201 params=params,
202 headers=headers,
203 cookies=cookies,
204 auth=auth,
205 proxy=proxy,
206 proxies=proxies,
207 follow_redirects=follow_redirects,
208 cert=cert,
209 verify=verify,
210 timeout=timeout,
211 trust_env=trust_env,
212 )
215def options(
216 url: URLTypes,
217 *,
218 params: QueryParamTypes | None = None,
219 headers: HeaderTypes | None = None,
220 cookies: CookieTypes | None = None,
221 auth: AuthTypes | None = None,
222 proxy: ProxyTypes | None = None,
223 proxies: ProxiesTypes | None = None,
224 follow_redirects: bool = False,
225 cert: CertTypes | None = None,
226 verify: VerifyTypes = True,
227 timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG,
228 trust_env: bool = True,
229) -> Response:
230 """
231 Sends an `OPTIONS` request.
233 **Parameters**: See `httpx.request`.
235 Note that the `data`, `files`, `json` and `content` parameters are not available
236 on this function, as `OPTIONS` requests should not include a request body.
237 """
238 return request(
239 "OPTIONS",
240 url,
241 params=params,
242 headers=headers,
243 cookies=cookies,
244 auth=auth,
245 proxy=proxy,
246 proxies=proxies,
247 follow_redirects=follow_redirects,
248 cert=cert,
249 verify=verify,
250 timeout=timeout,
251 trust_env=trust_env,
252 )
255def head(
256 url: URLTypes,
257 *,
258 params: QueryParamTypes | None = None,
259 headers: HeaderTypes | None = None,
260 cookies: CookieTypes | None = None,
261 auth: AuthTypes | None = None,
262 proxy: ProxyTypes | None = None,
263 proxies: ProxiesTypes | None = None,
264 follow_redirects: bool = False,
265 cert: CertTypes | None = None,
266 verify: VerifyTypes = True,
267 timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG,
268 trust_env: bool = True,
269) -> Response:
270 """
271 Sends a `HEAD` request.
273 **Parameters**: See `httpx.request`.
275 Note that the `data`, `files`, `json` and `content` parameters are not available
276 on this function, as `HEAD` requests should not include a request body.
277 """
278 return request(
279 "HEAD",
280 url,
281 params=params,
282 headers=headers,
283 cookies=cookies,
284 auth=auth,
285 proxy=proxy,
286 proxies=proxies,
287 follow_redirects=follow_redirects,
288 cert=cert,
289 verify=verify,
290 timeout=timeout,
291 trust_env=trust_env,
292 )
295def post(
296 url: URLTypes,
297 *,
298 content: RequestContent | None = None,
299 data: RequestData | None = None,
300 files: RequestFiles | None = None,
301 json: typing.Any | None = None,
302 params: QueryParamTypes | None = None,
303 headers: HeaderTypes | None = None,
304 cookies: CookieTypes | None = None,
305 auth: AuthTypes | None = None,
306 proxy: ProxyTypes | None = None,
307 proxies: ProxiesTypes | None = None,
308 follow_redirects: bool = False,
309 cert: CertTypes | None = None,
310 verify: VerifyTypes = True,
311 timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG,
312 trust_env: bool = True,
313) -> Response:
314 """
315 Sends a `POST` request.
317 **Parameters**: See `httpx.request`.
318 """
319 return request(
320 "POST",
321 url,
322 content=content,
323 data=data,
324 files=files,
325 json=json,
326 params=params,
327 headers=headers,
328 cookies=cookies,
329 auth=auth,
330 proxy=proxy,
331 proxies=proxies,
332 follow_redirects=follow_redirects,
333 cert=cert,
334 verify=verify,
335 timeout=timeout,
336 trust_env=trust_env,
337 )
340def put(
341 url: URLTypes,
342 *,
343 content: RequestContent | None = None,
344 data: RequestData | None = None,
345 files: RequestFiles | None = None,
346 json: typing.Any | None = None,
347 params: QueryParamTypes | None = None,
348 headers: HeaderTypes | None = None,
349 cookies: CookieTypes | None = None,
350 auth: AuthTypes | None = None,
351 proxy: ProxyTypes | None = None,
352 proxies: ProxiesTypes | None = None,
353 follow_redirects: bool = False,
354 cert: CertTypes | None = None,
355 verify: VerifyTypes = True,
356 timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG,
357 trust_env: bool = True,
358) -> Response:
359 """
360 Sends a `PUT` request.
362 **Parameters**: See `httpx.request`.
363 """
364 return request(
365 "PUT",
366 url,
367 content=content,
368 data=data,
369 files=files,
370 json=json,
371 params=params,
372 headers=headers,
373 cookies=cookies,
374 auth=auth,
375 proxy=proxy,
376 proxies=proxies,
377 follow_redirects=follow_redirects,
378 cert=cert,
379 verify=verify,
380 timeout=timeout,
381 trust_env=trust_env,
382 )
385def patch(
386 url: URLTypes,
387 *,
388 content: RequestContent | None = None,
389 data: RequestData | None = None,
390 files: RequestFiles | None = None,
391 json: typing.Any | None = None,
392 params: QueryParamTypes | None = None,
393 headers: HeaderTypes | None = None,
394 cookies: CookieTypes | None = None,
395 auth: AuthTypes | None = None,
396 proxy: ProxyTypes | None = None,
397 proxies: ProxiesTypes | None = None,
398 follow_redirects: bool = False,
399 cert: CertTypes | None = None,
400 verify: VerifyTypes = True,
401 timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG,
402 trust_env: bool = True,
403) -> Response:
404 """
405 Sends a `PATCH` request.
407 **Parameters**: See `httpx.request`.
408 """
409 return request(
410 "PATCH",
411 url,
412 content=content,
413 data=data,
414 files=files,
415 json=json,
416 params=params,
417 headers=headers,
418 cookies=cookies,
419 auth=auth,
420 proxy=proxy,
421 proxies=proxies,
422 follow_redirects=follow_redirects,
423 cert=cert,
424 verify=verify,
425 timeout=timeout,
426 trust_env=trust_env,
427 )
430def delete(
431 url: URLTypes,
432 *,
433 params: QueryParamTypes | None = None,
434 headers: HeaderTypes | None = None,
435 cookies: CookieTypes | None = None,
436 auth: AuthTypes | None = None,
437 proxy: ProxyTypes | None = None,
438 proxies: ProxiesTypes | None = None,
439 follow_redirects: bool = False,
440 cert: CertTypes | None = None,
441 verify: VerifyTypes = True,
442 timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG,
443 trust_env: bool = True,
444) -> Response:
445 """
446 Sends a `DELETE` request.
448 **Parameters**: See `httpx.request`.
450 Note that the `data`, `files`, `json` and `content` parameters are not available
451 on this function, as `DELETE` requests should not include a request body.
452 """
453 return request(
454 "DELETE",
455 url,
456 params=params,
457 headers=headers,
458 cookies=cookies,
459 auth=auth,
460 proxy=proxy,
461 proxies=proxies,
462 follow_redirects=follow_redirects,
463 cert=cert,
464 verify=verify,
465 timeout=timeout,
466 trust_env=trust_env,
467 )