Struct reqwest_oauth1::RequestBuilder

source ·
pub struct RequestBuilder<TSigner>
where TSigner: Clone,
{ /* private fields */ }
Expand description

Compatible interface with reqwest’s RequestBuilder.

Implementations§

source§

impl RequestBuilder<()>

source

pub fn sign<'a, TSecrets>( self, secrets: TSecrets, ) -> RequestBuilder<Signer<'a, TSecrets, DefaultSM>>
where TSecrets: SecretsProvider + Clone,

Add the signing information.

source

pub fn sign_with_params<'a, TSecrets, TSM>( self, secrets: TSecrets, params: OAuthParameters<'a, TSM>, ) -> RequestBuilder<Signer<'a, TSecrets, TSM>>
where TSecrets: SecretsProvider + Clone, TSM: SignatureMethod + Clone,

Add the signing information with OAuth parameters.

source§

impl<TSecrets, TSM> RequestBuilder<Signer<'_, TSecrets, TSM>>
where TSecrets: SecretsProvider + Clone, TSM: SignatureMethod + Clone,

source

pub async fn send(self) -> Result<Response, Error>

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.

source

pub fn generate_signature(self) -> SignResult<ReqwestRequestBuilder>

Generate an OAuth signature and return the reqwest’s RequestBuilder.

source§

impl<TSigner> RequestBuilder<TSigner>
where TSigner: Clone,

source

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.

source

pub fn form<T: Serialize + ?Sized + Clone>(self, form: &T) -> Self

Send a form body.

source

pub fn query_without_capture<T: Serialize>(self, query: &T) -> Self

Modify the query string of the URL, without capturing OAuth parameters.

§Note

Generated OAuth signature will may be invalid when you call this method with the parameters including the oauth_* parameters or the realm parameter.

source

pub fn form_without_capture<T: Serialize + ?Sized>(self, form: &T) -> Self

§Note

Generated OAuth signature will may be invalid when you call this method with the parameters including the oauth_* parameters or the realm parameter.

source

pub fn header<K, V>(self, key: K, value: V) -> Self

Add a Header to this Request.

source

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.

source

pub fn basic_auth<U, P>(self, username: U, password: Option<P>) -> Self
where U: Display, P: Display,

Enable HTTP basic authentication.

source

pub fn bearer_auth<T>(self, token: T) -> Self
where T: Display,

Enable HTTP bearer authentication.

source

pub fn body<T: Into<Body>>(self, body: T) -> Self

Set the request body.

source

pub fn timeout(self, timeout: Duration) -> Self

Enables a request timeout.

The timeout is applied from the when the request starts connecting until the response body has finished. It affects only this request and overrides the timeout configured using ClientBuilder::timeout().

source

pub fn multipart(self, multipart: Form) -> Self

Sends a multipart/form-data body.


let client = reqwest::Client::new();
let form = reqwest::multipart::Form::new()
    .text("key3", "value3")
    .text("key4", "value4");


let response = client.post("your url")
    .multipart(form)
    .send()
    .await?;

Note: multipart/form-data is not handled by the OAuth signer.

source

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’.

source

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.

Trait Implementations§

source§

impl<TSigner> Debug for RequestBuilder<TSigner>
where TSigner: Clone + Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<TSigner> !Freeze for RequestBuilder<TSigner>

§

impl<TSigner> !RefUnwindSafe for RequestBuilder<TSigner>

§

impl<TSigner> Send for RequestBuilder<TSigner>
where TSigner: Send,

§

impl<TSigner> Sync for RequestBuilder<TSigner>
where TSigner: Sync,

§

impl<TSigner> Unpin for RequestBuilder<TSigner>
where TSigner: Unpin,

§

impl<TSigner> !UnwindSafe for RequestBuilder<TSigner>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more