[−][src]Struct http_req::request::RequestBuilder
Relatively low-level struct for making HTTP requests.
It can work with any stream that implements Read
and Write
.
By default it does not close the connection after completion of the response.
Examples
use std::net::TcpStream; use http_req::{request::RequestBuilder, tls, uri::Uri, response::StatusCode}; let addr: Uri = "https://doc.rust-lang.org/".parse().unwrap(); let mut writer = Vec::new(); let stream = TcpStream::connect((addr.host().unwrap(), addr.corr_port())).unwrap(); let mut stream = tls::Config::default() .connect(addr.host().unwrap_or(""), stream) .unwrap(); let response = RequestBuilder::new(&addr) .header("Connection", "Close") .send(&mut stream, &mut writer) .unwrap(); assert_eq!(response.status_code(), StatusCode::new(200));
Methods
impl<'a> RequestBuilder<'a>
[src]
pub fn new(uri: &'a Uri) -> RequestBuilder<'a>
[src]
Creates new RequestBuilder
with default parameters
pub fn method<T>(&mut self, method: T) -> &mut Self where
Method: From<T>,
[src]
Method: From<T>,
Sets request method
pub fn headers<T>(&mut self, headers: T) -> &mut Self where
Headers: From<T>,
[src]
Headers: From<T>,
Replaces all it's headers with headers passed to the function
pub fn header<T: ?Sized, U: ?Sized>(&mut self, key: &T, val: &U) -> &mut Self where
T: ToString,
U: ToString,
[src]
T: ToString,
U: ToString,
Adds new header to existing/default headers
pub fn body(&mut self, body: &'a [u8]) -> &mut Self
[src]
Sets body for request
pub fn send<T, U>(
&self,
stream: &mut T,
writer: &mut U
) -> Result<Response, Error> where
T: Write + Read,
U: Write,
[src]
&self,
stream: &mut T,
writer: &mut U
) -> Result<Response, Error> where
T: Write + Read,
U: Write,
Sends HTTP request in these steps:
- Writes request message to
stream
. - Writes response's body to
writer
. - Returns response for this request.
pub fn write_msg<T, U>(&self, stream: &mut T, msg: &U) -> Result<(), Error> where
T: Write,
U: AsRef<[u8]>,
[src]
T: Write,
U: AsRef<[u8]>,
Writes message to stream
and flushes it
pub fn read_head<T: Read>(&self, stream: &mut T) -> Result<Response, Error>
[src]
Reads head of server's response
pub fn parse_msg(&self) -> Vec<u8>
[src]
Parses request message for this RequestBuilder
Trait Implementations
impl<'a> PartialEq<RequestBuilder<'a>> for RequestBuilder<'a>
[src]
fn eq(&self, other: &RequestBuilder<'a>) -> bool
[src]
fn ne(&self, other: &RequestBuilder<'a>) -> bool
[src]
impl<'a> Clone for RequestBuilder<'a>
[src]
fn clone(&self) -> RequestBuilder<'a>
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl<'a> Debug for RequestBuilder<'a>
[src]
Auto Trait Implementations
impl<'a> Send for RequestBuilder<'a>
impl<'a> Sync for RequestBuilder<'a>
Blanket Implementations
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T> From for T
[src]
impl<T, U> TryFrom for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,