11 releases (stable)

3.0.0 Apr 19, 2024
2.0.0 Nov 24, 2023
1.2.1 Aug 17, 2023
1.2.0 May 11, 2023
0.1.2 Oct 14, 2021

#76 in Authentication

Download history 179/week @ 2024-01-24 275/week @ 2024-01-31 544/week @ 2024-02-07 476/week @ 2024-02-14 1628/week @ 2024-02-21 836/week @ 2024-02-28 311/week @ 2024-03-06 333/week @ 2024-03-13 257/week @ 2024-03-20 263/week @ 2024-03-27 445/week @ 2024-04-03 350/week @ 2024-04-10 389/week @ 2024-04-17 361/week @ 2024-04-24 424/week @ 2024-05-01 413/week @ 2024-05-08

1,686 downloads per month
Used in 7 crates

MIT license

19KB
378 lines

diqwest

This crate extends reqwest to be able to send requests with digest auth flow.

When you send a request with digest auth flow this first request will be executed. In case the response is a 401 the www-authenticate header is parsed and the answer is calculated. The initial request is executed again with additional Authorization header. The response will be returned from send_with_digest_auth().

In case the first response is not a 401 this first response is returned from send_with_digest_auth() without any manipulation. In case the first response is a 401 but the www-authenticate header is missing the first reponse is returned as well.

Examples

Async (default)

use diqwest::WithDigestAuth;
use reqwest::{Client, Response};

// Call `.send_with_digest_auth()` on `RequestBuilder` like `send()`
let response: Response = Client::new()
  .get("url")
  .send_with_digest_auth("username", "password")
  .await?;

Blocking (feature flag blocking has to be enabled in Cargo.toml)

use diqwest::blocking::WithDigestAuth;
use reqwest::blocking::{Client, Response};

// Call `.send_with_digest_auth()` on `RequestBuilder` like `send()`
let response: Response = Client::new()
  .get("url")
  .send_with_digest_auth("username", "password")?;

Dependencies

~4–18MB
~245K SLoC