Struct salvo_core::test::RequestBuilder

source ·
pub struct RequestBuilder { /* private fields */ }
Available on crate feature test only.
Expand description

RequestBuilder is the main way of building requests.

You can create a RequestBuilder using the new or try_new method, but the recommended way or use one of the simpler constructors available in the crate root or on the Session struct, such as get, post, etc.

Implementations§

source§

impl RequestBuilder

source

pub fn new<U>(url: U, method: Method) -> Self
where U: AsRef<str>,

Create a new RequestBuilder with the base URL and the given method.

§Panics

Panics if the base url is invalid or if the method is CONNECT.

source§

impl RequestBuilder

source

pub fn query<K, V>(self, key: K, value: V) -> Self
where K: AsRef<str>, V: ToString,

Associate a query string parameter to the given value.

The same key can be used multiple times.

source

pub fn queries<P, K, V>(self, pairs: P) -> Self
where P: IntoIterator, P::Item: Borrow<(K, V)>, K: AsRef<str>, V: ToString,

Associated a list of pairs to query parameters.

The same key can be used multiple times.

§Example
TestClient::get("http://foo.bar").queries(&[("p1", "v1"), ("p2", "v2")]);
source

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

Enable HTTP basic authentication.

source

pub fn bearer_auth(self, token: impl Into<String>) -> Self

Enable HTTP bearer authentication.

source

pub fn body(self, body: impl Into<ReqBody>) -> Self

Sets the body of this request.

source

pub fn text(self, body: impl Into<String>) -> Self

Sets the body of this request to be text.

If the Content-Type header is unset, it will be set to text/plain and the charset to UTF-8.

source

pub fn bytes(self, body: Vec<u8>) -> Self

Sets the body of this request to be bytes.

If the Content-Type header is unset, it will be set to application/octet-stream.

source

pub fn json<T: Serialize>(self, value: &T) -> Self

Sets the body of this request to be the JSON representation of the given object.

If the Content-Type header is unset, it will be set to application/json and the charset to UTF-8.

source

pub fn raw_json(self, value: impl Into<String>) -> Self

Sets the body of this request to be the JSON representation of the given string.

If the Content-Type header is unset, it will be set to application/json and the charset to UTF-8.

source

pub fn form<T: Serialize>(self, value: &T) -> Self

Sets the body of this request to be the URL-encoded representation of the given object.

If the Content-Type header is unset, it will be set to application/x-www-form-urlencoded.

source

pub fn raw_form(self, value: impl Into<String>) -> Self

Sets the body of this request to be the URL-encoded representation of the given string.

If the Content-Type header is unset, it will be set to application/x-www-form-urlencoded.

source

pub fn add_header<N, V>(self, name: N, value: V, overwrite: bool) -> Self

Modify a header for this response.

When overwrite is set to true, If the header is already present, the value will be replaced. When overwrite is set to false, The new header is always appended to the request, even if the header already exists.

source

pub fn build(self) -> Request

Build final request.

source

pub fn build_hyper(self) -> Request<ReqBody>

Build hyper request.

source

pub async fn send(self, target: impl SendTarget + Send) -> Response

Send request to target, such as Router, Service, Handler.

Trait Implementations§

source§

impl Debug for RequestBuilder

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

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<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

source§

fn implicit( self, class: Class, constructed: bool, tag: u32 ) -> TaggedParser<'a, Implicit, Self, E>

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