Crate flawless_http
source ·Expand description
§flawless-http
HTTP client for https://flawless.dev.
This library takes a lot of inspiration from
ureq
. I’m very grateful for all the work thatalgesten
,jsha
and other contributors have done onureq
. ❤️
§Quick start
A simple GET request would look like this.
use flawless::workflow;
use flawless_http::get;
#[workflow("fetch")]
fn fetch() {
let request = get("https://example.com").set_header("Accept", "application/json");
let response = request.send().unwrap();
log::info!("{}", String::from_utf8(response.body()).unwrap());
}
§Body
A request can contain a body, but depending on the body type, additional request headers might be set. If headers are already manually set by the user, they are not overwritten.
§Text arguments
In case a String
or &str
type is given to body
, the "Content-Length"
header is
going to be set to the byte length of the string.
use flawless_http::post;
let response = post("https://httpbin.org/post")
.body("Hello world!")
.send();
assert!(response.is_ok());
§Form arguments
In case a slice of tuples of strings is passed in (&[(&str, &str)]
), body
will assume
a for is being submitted and URL encode it. It will set the header "Content-Type"
to
"application/x-www-form-urlencoded"
, and "Content-Length"
to the size of the encoded
content.
use flawless_http::post;
let response = post("https://httpbin.org/post")
.body([
("Hello", "world!"),
("second", "argument"),
].as_ref())
.send();
assert!(response.is_ok());
§JSON arguments
In case of a serde_json::Value
type, body
will assume that the content is of type
JSON and set the header "Content-Type"
to "application/json"
. It will also set
"Content-Length"
to the size of the serialized JSON.
use flawless_http::post;
use serde_json::json;
let response = post("https://httpbin.org/post")
.body(json!({
"Hello": "world!",
"second": "argument",
}))
.send();
assert!(response.is_ok());
Modules§
- A collection of out-of-the-box supported transport protocols.
Structs§
- Configuration settings for requests.
- An HTTP request.
- Error indicating an issue with the underlying request transport.
Enums§
- A request error.
- The kind of error that happened when a request is performed.
Traits§
- Implemented for everything that can be turned into a body.
Functions§
- Create a DELETE request.
- Create a GET request.
- Create a HEAD request.
- Create a PATCH request.
- Create a POST request.
- Create a PUT request.