[−][src]Struct rocket::local::LocalRequest
A structure representing a local request as created by Client.
Usage
A LocalRequest value is constructed via method constructors on Client.
Headers can be added via the header builder method and the
add_header method. Cookies can be added via the cookie builder
method. The remote IP address can be set via the remote builder method.
The body of the request can be set via the body builder method or
set_body method.
Example
The following snippet uses the available builder methods to construct a
POST request to / with a JSON body:
use rocket::local::Client; use rocket::http::{ContentType, Cookie}; let client = Client::new(rocket::ignite()).expect("valid rocket"); let req = client.post("/") .header(ContentType::JSON) .remote("127.0.0.1:8000".parse().unwrap()) .cookie(Cookie::new("name", "value")) .body(r#"{ "value": 42 }"#);
Dispatching
A LocalRequest can be dispatched in one of three ways:
-
This method should always be preferred. The
LocalRequestis consumed and a response is returned. -
This method should be used when one
LocalRequestwill be dispatched many times. This method clones the request and dispatches the clone, so the request is not consumed and can be reused. -
This method should only be used when either it is known that the application will not modify the request, or it is desired to see modifications to the request. No cloning occurs, and the request is not consumed.
Methods
impl<'c> LocalRequest<'c>[src]
impl<'c> LocalRequest<'c>pub fn inner(&self) -> &Request<'c>[src]
pub fn inner(&self) -> &Request<'c>Retrieves the inner Request as seen by Rocket.
Example
use rocket::local::Client; let client = Client::new(rocket::ignite()).expect("valid rocket"); let req = client.get("/"); let inner_req = req.inner();
pub fn header<H: Into<Header<'static>>>(self, header: H) -> Self[src]
pub fn header<H: Into<Header<'static>>>(self, header: H) -> SelfAdd a header to this request.
Any type that implements Into<Header> can be used here. Among others,
this includes ContentType and Accept.
Examples
Add the Content-Type header:
use rocket::local::Client; use rocket::http::ContentType; let client = Client::new(rocket::ignite()).unwrap(); let req = client.get("/").header(ContentType::JSON);
pub fn add_header<H: Into<Header<'static>>>(&mut self, header: H)[src]
pub fn add_header<H: Into<Header<'static>>>(&mut self, header: H)Adds a header to this request without consuming self.
Examples
Add the Content-Type header:
use rocket::local::Client; use rocket::http::ContentType; let client = Client::new(rocket::ignite()).unwrap(); let mut req = client.get("/"); req.add_header(ContentType::JSON);
pub fn remote(self, address: SocketAddr) -> Self[src]
pub fn remote(self, address: SocketAddr) -> SelfSet the remote address of this request.
Examples
Set the remote address to "8.8.8.8:80":
use rocket::local::Client; let client = Client::new(rocket::ignite()).unwrap(); let address = "8.8.8.8:80".parse().unwrap(); let req = client.get("/").remote(address);
Add a cookie to this request.
Examples
Add user_id cookie:
use rocket::local::Client; use rocket::http::Cookie; let client = Client::new(rocket::ignite()).unwrap(); let req = client.get("/") .cookie(Cookie::new("username", "sb")) .cookie(Cookie::new("user_id", "12"));
pub fn body<S: AsRef<[u8]>>(self, body: S) -> Self[src]
pub fn body<S: AsRef<[u8]>>(self, body: S) -> SelfSet the body (data) of the request.
Examples
Set the body to be a JSON structure; also sets the Content-Type.
use rocket::local::Client; use rocket::http::ContentType; let client = Client::new(rocket::ignite()).unwrap(); let req = client.post("/") .header(ContentType::JSON) .body(r#"{ "key": "value", "array": [1, 2, 3], }"#);
pub fn set_body<S: AsRef<[u8]>>(&mut self, body: S)[src]
pub fn set_body<S: AsRef<[u8]>>(&mut self, body: S)Set the body (data) of the request without consuming self.
Examples
Set the body to be a JSON structure; also sets the Content-Type.
use rocket::local::Client; use rocket::http::ContentType; let client = Client::new(rocket::ignite()).unwrap(); let mut req = client.post("/").header(ContentType::JSON); req.set_body(r#"{ "key": "value", "array": [1, 2, 3], }"#);
pub fn dispatch(self) -> LocalResponse<'c>[src]
pub fn dispatch(self) -> LocalResponse<'c>Dispatches the request, returning the response.
This method consumes self and is the preferred mechanism for
dispatching.
Example
use rocket::local::Client; let client = Client::new(rocket::ignite()).unwrap(); let response = client.get("/").dispatch();
pub fn cloned_dispatch(&self) -> LocalResponse<'c>[src]
pub fn cloned_dispatch(&self) -> LocalResponse<'c>Dispatches the request, returning the response.
This method does not consume self. Instead, it clones self and
dispatches the clone. As such, self can be reused.
Example
use rocket::local::Client; let client = Client::new(rocket::ignite()).unwrap(); let req = client.get("/"); let response_a = req.cloned_dispatch(); let response_b = req.cloned_dispatch();
pub fn mut_dispatch(&mut self) -> LocalResponse<'c>[src]
pub fn mut_dispatch(&mut self) -> LocalResponse<'c>Dispatches the request, returning the response.
This method does not consume or clone self. Any changes to the
request that occur during handling will be visible after this method is
called. For instance, body data is always consumed after a request is
dispatched. As such, only the first call to mut_dispatch for a given
LocalRequest will contains the original body data.
This method should only be used when either it is known that
the application will not modify the request, or it is desired to see
modifications to the request. Prefer to use dispatch or
cloned_dispatch instead
Example
use rocket::local::Client; let client = Client::new(rocket::ignite()).unwrap(); let mut req = client.get("/"); let response_a = req.mut_dispatch(); let response_b = req.mut_dispatch();
Trait Implementations
Auto Trait Implementations
impl<'c> !Send for LocalRequest<'c>
impl<'c> !Send for LocalRequest<'c>impl<'c> !Sync for LocalRequest<'c>
impl<'c> !Sync for LocalRequest<'c>Blanket Implementations
impl<T> From for T[src]
impl<T> From for Timpl<T, U> Into for T where
U: From<T>, [src]
impl<T, U> Into for T where
U: From<T>, impl<T, U> TryFrom for T where
T: From<U>, [src]
impl<T, U> TryFrom for T where
T: From<U>, type Error = !
try_from)The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>impl<T> Borrow for T where
T: ?Sized, [src]
impl<T> Borrow for T where
T: ?Sized, impl<T> Any for T where
T: 'static + ?Sized, [src]
impl<T> Any for T where
T: 'static + ?Sized, fn get_type_id(&self) -> TypeId[src]
fn get_type_id(&self) -> TypeIdimpl<T, U> TryInto for T where
U: TryFrom<T>, [src]
impl<T, U> TryInto for T where
U: TryFrom<T>, type Error = <U as TryFrom<T>>::Error
try_from)The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>impl<T> BorrowMut for T where
T: ?Sized, [src]
impl<T> BorrowMut for T where
T: ?Sized, fn borrow_mut(&mut self) -> &mut T[src]
fn borrow_mut(&mut self) -> &mut Timpl<T> Typeable for T where
T: Any, [src]
impl<T> Typeable for T where
T: Any,