4d1c4ec829
The Backup Server can compress the content using deflate so we teach the client how to decode it. If a request is sent with the `Accept-Encoding` [2] header set to `deflate`, and the response's `Content-Encoding` [1] header is equal to `deflate` we wrap the Body stream with a stream that can decode `zlib` on the run. Note that from the `Accept-Encoding` docs [2], the `deflate` encoding is actually `zlib`. This can be also tested against http://eu.httpbin.org/#/Response_formats/get_deflate by adding the following test: ```rust #[tokio::test] async fn test_client() { let client = Client::new(); let headers = HashMap::from([( hyper::header::ACCEPT_ENCODING.to_string(), "deflate".to_string(), )]); let response = client .get_string("https://eu.httpbin.org/deflate", Some(&headers)) .await; assert!(response.is_ok()); } ``` at `proxmox-http/src/client/simple.rs` and running ``` cargo test --features=client,client-trait ``` [1] https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding [2] https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Encoding Suggested-by: Lukas Wagner <l.wagner@proxmox.com> Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com> Reviewed-by: Max Carrara <m.carrara@proxmox.com> Tested-by: Max Carrara <m.carrara@proxmox.com> |
||
---|---|---|
.. | ||
debian | ||
src | ||
Cargo.toml |