Skip to main content

ClientRequest

Struct ClientRequest 

Source
pub struct ClientRequest { /* private fields */ }
Expand description

An HTTP Client request builder

This type can be used to construct an instance of ClientRequest through a builder-like pattern.

use kayrx::System;

#[kayrx::main]
async fn main() {
   let response = awc::Client::new()
        .get("http://www.rust-lang.org") // <- Create request builder
        .header("User-Agent", "Actix-web")
        .send()                          // <- Send http request
        .await;

   response.and_then(|response| {   // <- server http response
        println!("Response: {:?}", response);
        Ok(())
   });
}

Implementations§

Source§

impl ClientRequest

Source

pub fn uri<U>(self, uri: U) -> Self
where Uri: TryFrom<U>, <Uri as TryFrom<U>>::Error: Into<HttpError>,

Set HTTP URI of request.

Source

pub fn get_uri(&self) -> &Uri

Get HTTP URI of request.

Source

pub fn address(self, addr: SocketAddr) -> Self

Set socket address of the server.

This address is used for connection. If address is not provided url’s host name get resolved.

Source

pub fn method(self, method: Method) -> Self

Set HTTP method of this request.

Source

pub fn get_method(&self) -> &Method

Get HTTP method of this request

Source

pub fn get_version(&self) -> &Version

Get HTTP version of this request.

Source

pub fn get_peer_addr(&self) -> &Option<SocketAddr>

Get peer address of this request.

Source

pub fn headers(&self) -> &HeaderMap

Returns request’s headers.

Source

pub fn headers_mut(&mut self) -> &mut HeaderMap

Returns request’s mutable headers.

Source

pub fn set<H: Header>(self, hdr: H) -> Self

Set a header.

fn main() {
    let req = awc::Client::new()
        .get("http://www.rust-lang.org")
        .set(awc::http::header::Date::now())
        .set(awc::http::header::ContentType(mime::TEXT_HTML));
}
Source

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

Append a header.

Header gets appended to existing header. To override header use set_header() method.

use awc::{http, Client};

fn main() {
    let req = Client::new()
        .get("http://www.rust-lang.org")
        .header("X-TEST", "value")
        .header(http::header::CONTENT_TYPE, "application/json");
}
Source

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

Insert a header, replaces existing header.

Source

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

Insert a header only if it is not yet set.

Source

pub fn camel_case(self) -> Self

Send headers in Camel-Case form.

Source

pub fn force_close(self) -> Self

Force close connection instead of returning it back to connections pool. This setting affect only http/1 connections.

Source

pub fn content_type<V>(self, value: V) -> Self

Set request’s content type

Source

pub fn content_length(self, len: u64) -> Self

Set content length

Source

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

Set HTTP basic authorization header

Source

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

Set HTTP bearer authentication header

Source

pub fn cookie(self, cookie: Cookie<'_>) -> Self

Set a cookie

#[kayrx::main]
async fn main() {
    let resp = awc::Client::new().get("https://www.rust-lang.org")
        .cookie(
            awc::http::Cookie::build("name", "value")
                .domain("www.rust-lang.org")
                .path("/")
                .secure(true)
                .http_only(true)
                .finish(),
         )
         .send()
         .await;

    println!("Response: {:?}", resp);
}
Source

pub fn no_decompress(self) -> Self

Disable automatic decompress of response’s body

Source

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

Set request timeout. Overrides client wide timeout setting.

Request timeout is the total time before a response must be received. Default value is 5 seconds.

Source

pub fn if_true<F>(self, value: bool, f: F) -> Self

This method calls provided closure with builder reference if value is true.

Source

pub fn if_some<T, F>(self, value: Option<T>, f: F) -> Self

This method calls provided closure with builder reference if value is Some.

Source

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

Sets the query part of the request

Source

pub fn freeze(self) -> Result<FrozenClientRequest, FreezeRequestError>

Freeze request builder and construct FrozenClientRequest, which could be used for sending same request multiple times.

Source

pub fn send_body<B>(self, body: B) -> SendClientRequest
where B: Into<Body>,

Complete request construction and send body.

Source

pub fn send_json<T: Serialize>(self, value: &T) -> SendClientRequest

Set a JSON body and generate ClientRequest

Source

pub fn send_form<T: Serialize>(self, value: &T) -> SendClientRequest

Set a urlencoded body and generate ClientRequest

ClientRequestBuilder can not be used after this call.

Source

pub fn send_stream<S, E>(self, stream: S) -> SendClientRequest
where S: Stream<Item = Result<Bytes, E>> + Unpin + 'static, E: Into<Error> + 'static,

Set an streaming body and generate ClientRequest.

Source

pub fn send(self) -> SendClientRequest

Set an empty body and generate ClientRequest.

Trait Implementations§

Source§

impl Debug for ClientRequest

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<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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

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

Source§

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>,

Source§

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