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

Function encode_request

httpx/_content.py:186–218  ·  httpx/_content.py::encode_request

Handles encoding the given `content`, `data`, `files`, and `json`, returning a two-tuple of (<headers>, <stream>).

(
    content: RequestContent | None = None,
    data: RequestData | None = None,
    files: RequestFiles | None = None,
    json: Any | None = None,
    boundary: bytes | None = None,
)

Source from the content-addressed store, hash-verified

184
185
186def encode_request(
187 content: RequestContent | None = None,
188 data: RequestData | None = None,
189 files: RequestFiles | None = None,
190 json: Any | None = None,
191 boundary: bytes | None = None,
192) -> tuple[dict[str, str], SyncByteStream | AsyncByteStream]:
193 class="st">"""
194 Handles encoding the given `content`, `data`, `files`, and `json`,
195 returning a two-tuple of (<headers>, <stream>).
196 class="st">"""
197 if data is not None and not isinstance(data, Mapping):
198 class="cm"># We prefer to separate `content=<bytes|str|byte iterator|bytes aiterator>`
199 class="cm"># for raw request content, and `data=<form data>` for url encoded or
200 class="cm"># multipart form content.
201 class="cm">#
202 class="cm"># However for compat with requests, we *do* still support
203 class="cm"># `data=<bytes...>` usages. We deal with that case here, treating it
204 class="cm"># as if `content=<...>` had been supplied instead.
205 message = class="st">"Use &class="cm">#x27;content=<...>' to upload raw bytes/text content."
206 warnings.warn(message, DeprecationWarning, stacklevel=2)
207 return encode_content(data)
208
209 if content is not None:
210 return encode_content(content)
211 elif files:
212 return encode_multipart_data(data or {}, files, boundary)
213 elif data:
214 return encode_urlencoded_data(data)
215 elif json is not None:
216 return encode_json(json)
217
218 return {}, ByteStream(bclass="st">"")
219
220
221def encode_response(

Callers 1

__init__Method · 0.85

Calls 5

encode_contentFunction · 0.85
encode_multipart_dataFunction · 0.85
encode_urlencoded_dataFunction · 0.85
encode_jsonFunction · 0.85
ByteStreamClass · 0.85

Tested by

no test coverage detected