12个版本 (稳定)
3.1.0 | 2024年6月20日 |
---|---|
2.0.0 | 2023年11月24日 |
1.2.1 | 2023年8月17日 |
1.2.0 | 2023年5月11日 |
0.1.2 | 2021年10月14日 |
#103 in 身份验证
每月下载量:4,646
在 7 个crate中使用了(6个直接使用)
20KB
377 行
diqwest
此crate扩展了reqwest
,以便能够发送带有摘要认证流程的请求。
当你发送一个带有摘要认证流程的请求时,这个初始请求将被执行。如果响应是401
,则会解析www-authenticate
头,并计算答案。初始请求再次执行,并添加额外的Authorization
头。响应将通过send_with_digest_auth()
返回。
如果第一个响应不是401
,则直接从send_with_digest_auth()
返回第一个响应,不做任何处理。如果第一个响应是401
但缺少www-authenticate
头,则第一个响应也将被返回。
diqwest
是一个精简的crate,几乎没有依赖
reqwest
,当然,因为diqwest
是其扩展。没有任何启用功能和默认功能。digest_auth
用于计算答案。没有启用功能,也没有默认功能。url
用于在类型级别上验证URL。没有启用功能,也没有默认功能。
就是这样。没有使用其他依赖。甚至没有使用thiserror
来强制使用它。
示例
异步(默认)
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?;
阻塞(需要在Cargo.toml
中启用blocking
功能标志)
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")?;
依赖
~4–15MB
~202K SLoC