[][src]Struct http_req::request::RequestBuilder

pub struct RequestBuilder<'a> { /* fields omitted */ }

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]

Sets request method

pub fn headers<T>(&mut self, headers: T) -> &mut Self where
    Headers: From<T>, 
[src]

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]

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]

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]

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]

impl<'a> Clone for 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]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> From for T[src]

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.