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
impl ClientRequest
Sourcepub fn address(self, addr: SocketAddr) -> Self
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.
Sourcepub fn get_method(&self) -> &Method
pub fn get_method(&self) -> &Method
Get HTTP method of this request
Sourcepub fn get_version(&self) -> &Version
pub fn get_version(&self) -> &Version
Get HTTP version of this request.
Sourcepub fn get_peer_addr(&self) -> &Option<SocketAddr>
pub fn get_peer_addr(&self) -> &Option<SocketAddr>
Get peer address of this request.
Sourcepub fn headers_mut(&mut self) -> &mut HeaderMap
pub fn headers_mut(&mut self) -> &mut HeaderMap
Returns request’s mutable headers.
Sourcepub fn set<H: Header>(self, hdr: H) -> Self
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));
}Sourcepub fn header<K, V>(self, key: K, value: V) -> Selfwhere
HeaderName: TryFrom<K>,
<HeaderName as TryFrom<K>>::Error: Into<HttpError>,
V: IntoHeaderValue,
pub fn header<K, V>(self, key: K, value: V) -> Selfwhere
HeaderName: TryFrom<K>,
<HeaderName as TryFrom<K>>::Error: Into<HttpError>,
V: IntoHeaderValue,
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");
}Sourcepub fn set_header<K, V>(self, key: K, value: V) -> Selfwhere
HeaderName: TryFrom<K>,
<HeaderName as TryFrom<K>>::Error: Into<HttpError>,
V: IntoHeaderValue,
pub fn set_header<K, V>(self, key: K, value: V) -> Selfwhere
HeaderName: TryFrom<K>,
<HeaderName as TryFrom<K>>::Error: Into<HttpError>,
V: IntoHeaderValue,
Insert a header, replaces existing header.
Sourcepub fn set_header_if_none<K, V>(self, key: K, value: V) -> Selfwhere
HeaderName: TryFrom<K>,
<HeaderName as TryFrom<K>>::Error: Into<HttpError>,
V: IntoHeaderValue,
pub fn set_header_if_none<K, V>(self, key: K, value: V) -> Selfwhere
HeaderName: TryFrom<K>,
<HeaderName as TryFrom<K>>::Error: Into<HttpError>,
V: IntoHeaderValue,
Insert a header only if it is not yet set.
Sourcepub fn camel_case(self) -> Self
pub fn camel_case(self) -> Self
Send headers in Camel-Case form.
Sourcepub fn force_close(self) -> Self
pub fn force_close(self) -> Self
Force close connection instead of returning it back to connections pool. This setting affect only http/1 connections.
Sourcepub fn content_type<V>(self, value: V) -> Self
pub fn content_type<V>(self, value: V) -> Self
Set request’s content type
Sourcepub fn content_length(self, len: u64) -> Self
pub fn content_length(self, len: u64) -> Self
Set content length
Sourcepub fn basic_auth<U>(self, username: U, password: Option<&str>) -> Selfwhere
U: Display,
pub fn basic_auth<U>(self, username: U, password: Option<&str>) -> Selfwhere
U: Display,
Set HTTP basic authorization header
Sourcepub fn bearer_auth<T>(self, token: T) -> Selfwhere
T: Display,
pub fn bearer_auth<T>(self, token: T) -> Selfwhere
T: Display,
Set HTTP bearer authentication header
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);
}Sourcepub fn no_decompress(self) -> Self
pub fn no_decompress(self) -> Self
Disable automatic decompress of response’s body
Sourcepub fn timeout(self, timeout: Duration) -> Self
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.
Sourcepub fn if_true<F>(self, value: bool, f: F) -> Self
pub fn if_true<F>(self, value: bool, f: F) -> Self
This method calls provided closure with builder reference if
value is true.
Sourcepub fn if_some<T, F>(self, value: Option<T>, f: F) -> Self
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.
Sourcepub fn query<T: Serialize>(self, query: &T) -> Result<Self, Error>
pub fn query<T: Serialize>(self, query: &T) -> Result<Self, Error>
Sets the query part of the request
Sourcepub fn freeze(self) -> Result<FrozenClientRequest, FreezeRequestError>
pub fn freeze(self) -> Result<FrozenClientRequest, FreezeRequestError>
Freeze request builder and construct FrozenClientRequest,
which could be used for sending same request multiple times.
Sourcepub fn send_body<B>(self, body: B) -> SendClientRequest ⓘ
pub fn send_body<B>(self, body: B) -> SendClientRequest ⓘ
Complete request construction and send body.
Sourcepub fn send_json<T: Serialize>(self, value: &T) -> SendClientRequest ⓘ
pub fn send_json<T: Serialize>(self, value: &T) -> SendClientRequest ⓘ
Set a JSON body and generate ClientRequest
Sourcepub fn send_form<T: Serialize>(self, value: &T) -> SendClientRequest ⓘ
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.
Sourcepub fn send_stream<S, E>(self, stream: S) -> SendClientRequest ⓘ
pub fn send_stream<S, E>(self, stream: S) -> SendClientRequest ⓘ
Set an streaming body and generate ClientRequest.
Sourcepub fn send(self) -> SendClientRequest ⓘ
pub fn send(self) -> SendClientRequest ⓘ
Set an empty body and generate ClientRequest.
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for ClientRequest
impl !RefUnwindSafe for ClientRequest
impl !Send for ClientRequest
impl !Sync for ClientRequest
impl !UnwindSafe for ClientRequest
impl Unpin for ClientRequest
impl UnsafeUnpin for ClientRequest
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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