[−][src]Struct reqwest::Error
The Errors that may occur when processing a Request
.
Examples
extern crate serde; extern crate reqwest; use serde::Deserialize; #[derive(Deserialize)] struct Simple { key: String } fn run() { match make_request() { Err(e) => handler(e), Ok(_) => return, } } // Response is not a json object conforming to the Simple struct fn make_request() -> Result<Simple, reqwest::Error> { reqwest::get("http://httpbin.org/ip")?.json() } fn handler(e: reqwest::Error) { if e.is_http() { match e.url() { None => println!("No Url given"), Some(url) => println!("Problem making request to: {}", url), } } // Inspect the internal error and output it if e.is_serialization() { let serde_error = match e.get_ref() { None => return, Some(err) => err, }; println!("problem parsing information {}", serde_error); } if e.is_redirect() { println!("server redirecting too many times or making loop"); } }
Methods
impl Error
[src]
pub fn url(&self) -> Option<&Url>
[src]
Returns a possible URL related to this error.
Examples
// displays last stop of a redirect loop let response = reqwest::get("http://site.with.redirect.loop"); if let Err(e) = response { if e.is_redirect() { if let Some(final_stop) = e.url() { println!("redirect loop at {}", final_stop); } } }
pub fn get_ref(&self) -> Option<&(dyn StdError + Send + Sync + 'static)>
[src]
Returns a reference to the internal error, if available.
The 'static
bounds allows using downcast_ref
to check the
details of the error.
Examples
extern crate url; // retries requests with no host on localhost let invalid_request = "http://"; let mut response = reqwest::get(invalid_request); if let Err(e) = response { match e.get_ref().and_then(|e| e.downcast_ref::<url::ParseError>()) { Some(&url::ParseError::EmptyHost) => { let valid_request = format!("{}{}",invalid_request, "localhost"); response = reqwest::get(&valid_request); }, _ => (), } }
pub fn is_http(&self) -> bool
[src]
Returns true if the error is related to HTTP.
pub fn is_timeout(&self) -> bool
[src]
Returns true if the error is related to a timeout.
pub fn is_serialization(&self) -> bool
[src]
Returns true if the error is serialization related.
pub fn is_redirect(&self) -> bool
[src]
Returns true if the error is from a RedirectPolicy
.
pub fn is_client_error(&self) -> bool
[src]
Returns true if the error is from a request returning a 4xx error.
pub fn is_server_error(&self) -> bool
[src]
Returns true if the error is from a request returning a 5xx error.
pub fn status(&self) -> Option<StatusCode>
[src]
Returns the status code, if the error was generated from a response.
Trait Implementations
Auto Trait Implementations
impl Send for Error
impl Unpin for Error
impl Sync for Error
impl !UnwindSafe for Error
impl !RefUnwindSafe for Error
Blanket Implementations
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From<T> for T
[src]
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
impl<T, U> TryFrom<U> 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, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<E> Fail for E where
E: 'static + Error + Send + Sync,
[src]
E: 'static + Error + Send + Sync,
fn name(&self) -> Option<&str>
[src]
fn cause(&self) -> Option<&(dyn Fail + 'static)>
[src]
fn backtrace(&self) -> Option<&Backtrace>
[src]
fn context<D>(self, context: D) -> Context<D> where
D: Display + Send + Sync + 'static,
[src]
D: Display + Send + Sync + 'static,
fn compat(self) -> Compat<Self>
[src]
impl<T> AsFail for T where
T: Fail,
[src]
T: Fail,
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,