download_file.write(chunk)
progress.update(response.num_bytes_downloaded - num_bytes_downloaded)
num_bytes_downloaded = response.num_bytes_downloaded
- print(f"The total download size is {response.num_bytes_downloaded} bytes")
```
+
+
+Or an alternate example, this time using the [`rich`](https://github.com/willmcgugan/rich) library…
+
+```python
+import tempfile
+import httpx
+import rich.progress
+
+with tempfile.NamedTemporaryFile() as download_file:
+ url = "https://speed.hetzner.de/100MB.bin"
+ with httpx.stream("GET", url) as response:
+ total = int(response.headers["Content-Length"])
+
+ with rich.progress.Progress(
+ "[progress.percentage]{task.percentage:>3.0f}%",
+ rich.progress.BarColumn(bar_width=None),
+ rich.progress.DownloadColumn(),
+ rich.progress.TransferSpeedColumn(),
+ ) as progress:
+ download_task = progress.add_task("Download", total=total)
+ for chunk in response.iter_bytes():
+ download_file.write(chunk)
+ progress.update(download_task, completed=response.num_bytes_downloaded)
+```
+
+
+
## .netrc Support
HTTPX supports .netrc file. In `trust_env=True` cases, if auth parameter is