Minimalistic HTTP Client Test Utilities.
0.0.x
.WARNING - API might change during
0.0.x
development.
```rs use anyhow::Result; use serde_json::json;
async fn testsimplebase() -> httpctest::Result<()> { // Create a new httpc test client with a base URL (will be prefixed for all calls) // The client will have a cookiestore. let hc = httpctest::newclient("http://localhost:8080")?;
// Simple get
let res = hc.do_get("/hello").await?;
// Pretty print the result (status, headers, response cookies, client cookies, body)
res.print().await?;
// Another get
let res = hc.do_get("/context.rs").await?;
// Pretty print but do not print the body
res.print_no_body().await?;
// Do a json post
// In this case, server might do a Set-Cookie for the auth-token,
// and the client cookie will be updated.
let res = hc
.do_post_json(
"/api/login",
json!({
"username": "admin",
"pwd": "welcome"
}),
)
.await?;
res.print().await?;
// Another post (with the cookie store updated from the login request above )
let res = hc
.do_post_json(
"/api/tickets",
json!({
"subject": "ticket 01"
}),
)
.await?;
res.print().await?;
// do_put_json, do_patch_json also available.
// Another post
let res = hc.do_get("/api/tickets").await?;
res.print().await?;
Ok(())
} ```