MCPcopy
hub / github.com/encode/httpx / __init__

Method __init__

httpx/_models.py:383–439  ·  httpx/_models.py::Request.__init__
(
        self,
        method: str,
        url: URL | str,
        *,
        params: QueryParamTypes | None = None,
        headers: HeaderTypes | None = None,
        cookies: CookieTypes | None = None,
        content: RequestContent | None = None,
        data: RequestData | None = None,
        files: RequestFiles | None = None,
        json: typing.Any | None = None,
        stream: SyncByteStream | AsyncByteStream | None = None,
        extensions: RequestExtensions | None = None,
    )

Source from the content-addressed store, hash-verified

381
382class Request:
383 def __init__(
384 self,
385 method: str,
386 url: URL | str,
387 *,
388 params: QueryParamTypes | None = None,
389 headers: HeaderTypes | None = None,
390 cookies: CookieTypes | None = None,
391 content: RequestContent | None = None,
392 data: RequestData | None = None,
393 files: RequestFiles | None = None,
394 json: typing.Any | None = None,
395 stream: SyncByteStream | AsyncByteStream | None = None,
396 extensions: RequestExtensions | None = None,
397 ) -> None:
398 self.method = method.upper()
399 self.url = URL(url) if params is None else URL(url, params=params)
400 self.headers = Headers(headers)
401 self.extensions = {} if extensions is None else dict(extensions)
402
403 if cookies:
404 Cookies(cookies).set_cookie_header(self)
405
406 if stream is None:
407 content_type: str | None = self.headers.get(class="st">"content-type")
408 headers, stream = encode_request(
409 content=content,
410 data=data,
411 files=files,
412 json=json,
413 boundary=get_multipart_boundary_from_content_type(
414 content_type=content_type.encode(self.headers.encoding)
415 if content_type
416 else None
417 ),
418 )
419 self._prepare(headers)
420 self.stream = stream
421 class="cm"># Load the request body, except for streaming content.
422 if isinstance(stream, ByteStream):
423 self.read()
424 else:
425 class="cm"># There's an important distinction between `Request(content=...)`,
426 class="cm"># and `Request(stream=...)`.
427 class="cm">#
428 class="cm"># Using `content=...` implies automatically populated `Host` and content
429 class="cm"># headers, of either `Content-Length: ...` or `Transfer-Encoding: chunked`.
430 class="cm">#
431 class="cm"># Using `stream=...` will not automatically include *any*
432 class="cm"># auto-populated headers.
433 class="cm">#
434 class="cm"># As an end-user you donclass="st">'t really need `stream=...`. It's only
435 class="cm"># useful when:
436 class="cm">#
437 class="cm"># * Preserving the request stream when copying requests, eg for redirects.
438 class="cm"># * Creating request instances on the *server-side* of the transport API.
439 self.stream = stream
440

Callers

nothing calls this directly

Calls 9

_prepareMethod · 0.95
readMethod · 0.95
URLClass · 0.85
HeadersClass · 0.85
CookiesClass · 0.85
encode_requestFunction · 0.85
set_cookie_headerMethod · 0.80
getMethod · 0.45

Tested by

no test coverage detected