diff --git a/docs/advanced/clients.md b/docs/advanced/clients.md index a55fc596fb..90969cefda 100644 --- a/docs/advanced/clients.md +++ b/docs/advanced/clients.md @@ -270,8 +270,9 @@ multipart file encoding is available by passing a dictionary with the name of the payloads as keys and either tuple of elements or a file-like object or a string as values. ```pycon ->>> files = {'upload-file': ('report.xls', open('report.xls', 'rb'), 'application/vnd.ms-excel')} ->>> r = httpx.post("https://httpbin.org/post", files=files) +>>> with open('report.xls', 'rb') as report_file: +... files = {'upload-file': ('report.xls', report_file, 'application/vnd.ms-excel')} +... r = httpx.post("https://httpbin.org/post", files=files) >>> print(r.text) { ... @@ -318,7 +319,10 @@ To do that, pass a list of `(field, )` items instead of a dictionary, allo For instance this request sends 2 files, `foo.png` and `bar.png` in one request on the `images` form field: ```pycon ->>> files = [('images', ('foo.png', open('foo.png', 'rb'), 'image/png')), - ('images', ('bar.png', open('bar.png', 'rb'), 'image/png'))] ->>> r = httpx.post("https://httpbin.org/post", files=files) +>>> with open('foo.png', 'rb') as foo_file, open('bar.png', 'rb') as bar_file: +... files = [ +... ('images', ('foo.png', foo_file, 'image/png')), +... ('images', ('bar.png', bar_file, 'image/png')), +... ] +... r = httpx.post("https://httpbin.org/post", files=files) ``` diff --git a/docs/quickstart.md b/docs/quickstart.md index aa203a8336..38da2fec36 100644 --- a/docs/quickstart.md +++ b/docs/quickstart.md @@ -174,8 +174,9 @@ Form encoded data can also include multiple values from a given key. You can also upload files, using HTTP multipart encoding: ```pycon ->>> files = {'upload-file': open('report.xls', 'rb')} ->>> r = httpx.post("https://httpbin.org/post", files=files) +>>> with open('report.xls', 'rb') as report_file: +... files = {'upload-file': report_file} +... r = httpx.post("https://httpbin.org/post", files=files) >>> print(r.text) { ... @@ -190,8 +191,9 @@ You can also explicitly set the filename and content type, by using a tuple of items for the file value: ```pycon ->>> files = {'upload-file': ('report.xls', open('report.xls', 'rb'), 'application/vnd.ms-excel')} ->>> r = httpx.post("https://httpbin.org/post", files=files) +>>> with open('report.xls', 'rb') report_file: +... files = {'upload-file': ('report.xls', report_file, 'application/vnd.ms-excel')} +... r = httpx.post("https://httpbin.org/post", files=files) >>> print(r.text) { ... @@ -206,8 +208,9 @@ If you need to include non-file data fields in the multipart form, use the `data ```pycon >>> data = {'message': 'Hello, world!'} ->>> files = {'file': open('report.xls', 'rb')} ->>> r = httpx.post("https://httpbin.org/post", data=data, files=files) +>>> with open('report.xls', 'rb') as report_file: +... files = {'file': report_file} +... r = httpx.post("https://httpbin.org/post", data=data, files=files) >>> print(r.text) { ...