Struct reqwest_middleware::RequestBuilder
source · pub struct RequestBuilder { /* private fields */ }
Expand description
This is a wrapper around reqwest::RequestBuilder
exposing the same API.
Implementations§
source§impl RequestBuilder
impl RequestBuilder
sourcepub fn from_parts(
client: ClientWithMiddleware,
request: Request,
) -> RequestBuilder
pub fn from_parts( client: ClientWithMiddleware, request: Request, ) -> RequestBuilder
Assemble a builder starting from an existing Client
and a Request
.
sourcepub fn header<K, V>(self, key: K, value: V) -> Selfwhere
HeaderName: TryFrom<K>,
<HeaderName as TryFrom<K>>::Error: Into<Error>,
HeaderValue: TryFrom<V>,
<HeaderValue as TryFrom<V>>::Error: Into<Error>,
pub fn header<K, V>(self, key: K, value: V) -> Selfwhere
HeaderName: TryFrom<K>,
<HeaderName as TryFrom<K>>::Error: Into<Error>,
HeaderValue: TryFrom<V>,
<HeaderValue as TryFrom<V>>::Error: Into<Error>,
Add a Header
to this Request.
sourcepub fn headers(self, headers: HeaderMap) -> Self
pub fn headers(self, headers: HeaderMap) -> Self
Add a set of Headers to the existing ones on this Request.
The headers will be merged in to any already set.
pub fn version(self, version: Version) -> Self
sourcepub fn basic_auth<U, P>(self, username: U, password: Option<P>) -> Self
pub fn basic_auth<U, P>(self, username: U, password: Option<P>) -> Self
Enable HTTP basic authentication.
let client = reqwest_middleware::ClientWithMiddleware::from(reqwest::Client::new());
let resp = client.delete("http://httpbin.org/delete")
.basic_auth("admin", Some("good password"))
.send()
.await?;
sourcepub fn bearer_auth<T>(self, token: T) -> Selfwhere
T: Display,
pub fn bearer_auth<T>(self, token: T) -> Selfwhere
T: Display,
Enable HTTP bearer authentication.
sourcepub fn timeout(self, timeout: Duration) -> Self
pub fn timeout(self, timeout: Duration) -> Self
Enables a request timeout.
The timeout is applied from when the request starts connecting until the
response body has finished. It affects only this request and overrides
the timeout configured using ClientBuilder::timeout()
.
sourcepub fn query<T: Serialize + ?Sized>(self, query: &T) -> Self
pub fn query<T: Serialize + ?Sized>(self, query: &T) -> Self
Modify the query string of the URL.
Modifies the URL of this request, adding the parameters provided.
This method appends and does not overwrite. This means that it can
be called multiple times and that existing query parameters are not
overwritten if the same key is used. The key will simply show up
twice in the query string.
Calling .query(&[("foo", "a"), ("foo", "b")])
gives "foo=a&foo=b"
.
§Note
This method does not support serializing a single key-value
pair. Instead of using .query(("key", "val"))
, use a sequence, such
as .query(&[("key", "val")])
. It’s also possible to serialize structs
and maps into a key-value pair.
§Errors
This method will fail if the object you provide cannot be serialized into a query string.
sourcepub fn form<T: Serialize + ?Sized>(self, form: &T) -> Self
pub fn form<T: Serialize + ?Sized>(self, form: &T) -> Self
Send a form body.
Sets the body to the url encoded serialization of the passed value,
and also sets the Content-Type: application/x-www-form-urlencoded
header.
let mut params = HashMap::new();
params.insert("lang", "rust");
let client = reqwest_middleware::ClientWithMiddleware::from(reqwest::Client::new());
let res = client.post("http://httpbin.org")
.form(¶ms)
.send()
.await?;
§Errors
This method fails if the passed value cannot be serialized into url encoded format
sourcepub fn fetch_mode_no_cors(self) -> Self
pub fn fetch_mode_no_cors(self) -> Self
Disable CORS on fetching the request.
§WASM
This option is only effective with WebAssembly target.
The request mode will be set to ‘no-cors’.
sourcepub fn build(self) -> Result<Request>
pub fn build(self) -> Result<Request>
Build a Request
, which can be inspected, modified and executed with
ClientWithMiddleware::execute()
.
sourcepub fn build_split(self) -> (ClientWithMiddleware, Result<Request>)
pub fn build_split(self) -> (ClientWithMiddleware, Result<Request>)
Build a Request
, which can be inspected, modified and executed with
ClientWithMiddleware::execute()
.
This is similar to RequestBuilder::build()
, but also returns the
embedded Client
.
sourcepub fn with_extension<T: Send + Sync + Clone + 'static>(
self,
extension: T,
) -> Self
pub fn with_extension<T: Send + Sync + Clone + 'static>( self, extension: T, ) -> Self
Inserts the extension into this request builder
sourcepub fn extensions(&mut self) -> &mut Extensions
pub fn extensions(&mut self) -> &mut Extensions
Returns a mutable reference to the internal set of extensions for this request
sourcepub async fn send(self) -> Result<Response>
pub async fn send(self) -> Result<Response>
Constructs the Request and sends it to the target URL, returning a future Response.
§Errors
This method fails if there was an error while sending request, redirect loop was detected or redirect limit was exhausted.
§Example
let response = reqwest_middleware::ClientWithMiddleware::from(reqwest::Client::new())
.get("https://hyper.rs")
.send()
.await?;
sourcepub fn try_clone(&self) -> Option<Self>
pub fn try_clone(&self) -> Option<Self>
Attempt to clone the RequestBuilder.
None
is returned if the RequestBuilder can not be cloned,
i.e. if the request body is a stream.
§Examples
let client = reqwest_middleware::ClientWithMiddleware::from(reqwest::Client::new());
let builder = client.post("http://httpbin.org/post")
.body("from a &str!");
let clone = builder.try_clone();
assert!(clone.is_some());