Struct iron::request::HttpRequest
[−]
[src]
pub struct HttpRequest<'a, 'b> where 'b: 'a {
pub remote_addr: SocketAddr,
pub method: Method,
pub headers: Headers,
pub uri: RequestUri,
pub version: HttpVersion,
// some fields omitted
}
A request bundles several parts of an incoming NetworkStream
, given to a Handler
.
Fields
remote_addr | The IP address of the remote connection. |
method | The |
headers | The headers of the incoming request. |
uri | The target request-uri for this request. |
version | The version of HTTP for this request. |
Methods
impl<'a, 'b> Request<'a, 'b> where 'b: 'a
fn new(stream: &'a mut BufReader<&'b mut NetworkStream + 'static>, addr: SocketAddr) -> Result<Request<'a, 'b>, Error>
Create a new Request, reading the StartLine and Headers so they are immediately useful.
fn set_read_timeout(&self, timeout: Option<Duration>) -> Result<(), Error>
Set the read timeout of the underlying NetworkStream.
fn downcast_ref<T>(&self) -> Option<&T> where T: NetworkStream
Get a reference to the underlying NetworkStream
.
fn ssl<T>(&self) -> Option<&T> where T: NetworkStream
Get a reference to the underlying Ssl stream, if connected over HTTPS.
Example
extern crate openssl; use openssl::ssl::SslStream; use hyper::net::HttpStream; let maybe_ssl = req.ssl::<SslStream<HttpStream>>();
fn deconstruct(self) -> (SocketAddr, Method, Headers, RequestUri, HttpVersion, HttpReader<&'a mut BufReader<&'b mut NetworkStream + 'static>>)
Deconstruct a Request into its constituent parts.