14个版本
0.1.10 | 2024年8月7日 |
---|---|
0.1.9 | 2024年1月24日 |
0.1.8 | 2023年11月20日 |
0.1.5 | 2023年7月14日 |
0.1.1 | 2023年3月19日 |
#59 在 HTTP客户端
每月4,132次下载
在 greenhouse_core 中使用
26KB
578 行
极简HTTP客户端测试工具。
感谢
- 感谢 @joeftiger 更新依赖项 (#23)
- 感谢 @Manubi 更新
colored_json
- 感谢 @JamesGuthrie,包括
- 感谢 @cyril-marpaud,为 PR #9 - feat: provide Response's StatusCode。
- 感谢 @eboody,为 PR #7 - Add colors to output (启用
features = ["color-output"]
) - 感谢 @defic,提供了类型客户端
get/post/put/patch/delete
和响应body...
API。
示例
use anyhow::Result;
use serde_json::{json, Value};
#[tokio::test]
async fn test_simple_base() -> httpc_test::Result<()> {
// Create a new httpc test client with a base URL (will be prefixed for all calls)
// The client will have a cookie_store.
let hc = httpc_test::new_client("http://localhost:8080")?;
//// do_get, do_post, do_put, do_patch, do_delete return a httpc_test::Response
// Simple do_get
let res = hc.do_get("/hello").await?; // httpc_test::Response
let status = res.status();
// Pretty print the result (status, headers, response cookies, client cookies, body)
res.print().await?;
let auth_token = res.res_cookie_value("auth-token"); // Option<String>
let content_type = res.header("content_type"); // Option<&String>
// Another do_get
let res = hc.do_get("/context.rs").await?;
// Pretty print but do not print the body
res.print_no_body().await?;
//// get, post, put, patch, delete return a DeserializeOwned
// a get (return a Deserialized)
let json_value = hc.get::<Value>("/api/tickets").await?;
// Another post (with the cookie store updated from the login request above )
let res = hc
.do_post(
"/api/tickets",
json!({
"subject": "ticket 01"
}),
)
.await?;
res.print().await?;
// Post with text content and specific content type
let res = hc
.do_post(
"/api/tickets",
(r#"{
"subject": "ticket bb"
}
"#,
"application/json"),
)
.await?;
res.print().await?;
// Same woth do_patch, do_put.
Ok(())
}
依赖项
~7–22MB
~276K SLoC