!!! tip
It is safe to upload large files this way. File uploads are streaming by default, meaning that only one chunk will be loaded into memory at a time.
+ Non-file data fields can be included in the multipart form using by passing them to `data=...`.
+
## Customizing authentication
When issuing requests or instantiating a client, the `auth` argument can be used to pass an authentication scheme to use. The `auth` argument may be one of the following...
}
```
+If you need to include non-file data fields in the multipart form, use the `data=...` parameter:
+
+```python
+>>> data = {'message': 'Hello, world!'}
+>>> files = {'file': open('report.xls', 'rb')}
+>>> r = httpx.post("https://httpbin.org/post", data=data, files=files)
+>>> print(r.text)
+{
+ ...
+ "files": {
+ "file": "<... binary content ...>"
+ },
+ "form": {
+ "message": "Hello, world!",
+ },
+ ...
+}
+```
+
## Sending JSON Encoded Data
Form encoded data is okay if all you need is a simple key-value data structure.