pub struct CloudRequestBuilder { /* private fields */ }Expand description
A builder for a single request issued through a CloudClient.
Created by CloudClient::request and the per-verb shortcuts such as
CloudClient::get. Configure the request with the builder methods, then
call send to sign and dispatch it.
Implementations§
Source§impl CloudRequestBuilder
impl CloudRequestBuilder
Sourcepub fn header<K, V>(self, key: K, value: V) -> CloudRequestBuilderwhere
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) -> CloudRequestBuilderwhere
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) -> CloudRequestBuilder
pub fn headers(self, headers: HeaderMap) -> CloudRequestBuilder
Add a set of Headers to the existing ones on this Request.
The headers will be merged in to any already set.
Sourcepub fn body<T: Into<Body>>(self, body: T) -> CloudRequestBuilder
pub fn body<T: Into<Body>>(self, body: T) -> CloudRequestBuilder
Set the request body.
Sourcepub fn timeout(self, timeout: Duration) -> CloudRequestBuilder
pub fn timeout(self, timeout: Duration) -> CloudRequestBuilder
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) -> CloudRequestBuilder
pub fn query<T: Serialize + ?Sized>(self, query: &T) -> CloudRequestBuilder
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 json<T: Serialize + ?Sized>(self, json: &T) -> CloudRequestBuilder
pub fn json<T: Serialize + ?Sized>(self, json: &T) -> CloudRequestBuilder
Send a JSON body.
§Errors
Serialization can fail if T’s implementation of Serialize decides to
fail, or if T contains a map with non-string keys.
Sourcepub async fn send(self) -> Result<Response>
pub async fn send(self) -> Result<Response>
Sign and send the request, returning the reqwest::Response.
The request is first passed to the client’s RequestSigner, which
attaches the provider-specific authentication (e.g. AWS SigV4 headers or
an Authorization: Bearer header), refreshing any cached credential as
needed. The signed request is then dispatched through the client’s
HttpService.
When the recording feature is enabled and a recording directory has
been configured via CloudClient::set_recording_dir, the request and
response are also written to disk (with sensitive headers redacted)
before the response is returned to the caller.
§Errors
Returns an Error if signing fails, if the request cannot be built, or
if the underlying HTTP transport returns an error. A non-success HTTP
status code is not itself an error; inspect reqwest::Response::status
on the returned response.