update doc examples
- Make examples runnable for doc tests - Add error handling using `?` instead of `unwrap`
This commit is contained in:
		| @@ -31,7 +31,7 @@ static DEFAULT_USER_AGENT: &'static str = concat!(env!("CARGO_PKG_NAME"), "/", e | |||||||
| /// | /// | ||||||
| /// # Examples | /// # Examples | ||||||
| /// | /// | ||||||
| /// ``` | /// ```rust | ||||||
| /// # use reqwest::{Error, Client}; | /// # use reqwest::{Error, Client}; | ||||||
| /// # | /// # | ||||||
| /// # fn run() -> Result<(), Error> { | /// # fn run() -> Result<(), Error> { | ||||||
| @@ -182,13 +182,18 @@ pub struct RequestBuilder { | |||||||
| impl RequestBuilder { | impl RequestBuilder { | ||||||
|     /// Add a `Header` to this Request. |     /// Add a `Header` to this Request. | ||||||
|     /// |     /// | ||||||
|     /// ```no_run |     /// ```rust | ||||||
|  |     /// # use reqwest::Error; | ||||||
|  |     /// # | ||||||
|  |     /// # fn run() -> Result<(), Error> { | ||||||
|     /// use reqwest::header::UserAgent; |     /// use reqwest::header::UserAgent; | ||||||
|     /// let client = reqwest::Client::new().expect("client failed to construct"); |     /// let client = reqwest::Client::new()?; | ||||||
|     /// |     /// | ||||||
|     /// let res = client.get("https://www.rust-lang.org") |     /// let res = client.get("https://www.rust-lang.org") | ||||||
|     ///     .header(UserAgent("foo".to_string())) |     ///     .header(UserAgent("foo".to_string())) | ||||||
|     ///     .send(); |     ///     .send()?; | ||||||
|  |     /// # Ok(()) | ||||||
|  |     /// # } | ||||||
|     /// ``` |     /// ``` | ||||||
|     pub fn header<H: ::header::Header + ::header::HeaderFormat>(mut self, header: H) -> RequestBuilder { |     pub fn header<H: ::header::Header + ::header::HeaderFormat>(mut self, header: H) -> RequestBuilder { | ||||||
|         self.headers.set(header); |         self.headers.set(header); | ||||||
| @@ -222,15 +227,20 @@ impl RequestBuilder { | |||||||
|     /// and also sets the `Content-Type: application/www-form-url-encoded` |     /// and also sets the `Content-Type: application/www-form-url-encoded` | ||||||
|     /// header. |     /// header. | ||||||
|     /// |     /// | ||||||
|     /// ```no_run |     /// ```rust | ||||||
|  |     /// # use reqwest::Error; | ||||||
|     /// # use std::collections::HashMap; |     /// # use std::collections::HashMap; | ||||||
|  |     /// # | ||||||
|  |     /// # fn run() -> Result<(), Error> { | ||||||
|     /// let mut params = HashMap::new(); |     /// let mut params = HashMap::new(); | ||||||
|     /// params.insert("lang", "rust"); |     /// params.insert("lang", "rust"); | ||||||
|     /// |     /// | ||||||
|     /// let client = reqwest::Client::new().unwrap(); |     /// let client = reqwest::Client::new()?; | ||||||
|     /// let res = client.post("http://httpbin.org") |     /// let res = client.post("http://httpbin.org") | ||||||
|     ///     .form(¶ms) |     ///     .form(¶ms) | ||||||
|     ///     .send(); |     ///     .send()?; | ||||||
|  |     /// # Ok(()) | ||||||
|  |     /// # } | ||||||
|     /// ``` |     /// ``` | ||||||
|     pub fn form<T: Serialize>(mut self, form: &T) -> RequestBuilder { |     pub fn form<T: Serialize>(mut self, form: &T) -> RequestBuilder { | ||||||
|         let body = serde_urlencoded::to_string(form).map_err(::error::from); |         let body = serde_urlencoded::to_string(form).map_err(::error::from); | ||||||
| @@ -244,15 +254,20 @@ impl RequestBuilder { | |||||||
|     /// Sets the body to the JSON serialization of the passed value, and |     /// Sets the body to the JSON serialization of the passed value, and | ||||||
|     /// also sets the `Content-Type: application/json` header. |     /// also sets the `Content-Type: application/json` header. | ||||||
|     /// |     /// | ||||||
|     /// ```no_run |     /// ```rust | ||||||
|  |     /// # use reqwest::Error; | ||||||
|     /// # use std::collections::HashMap; |     /// # use std::collections::HashMap; | ||||||
|  |     /// # | ||||||
|  |     /// # fn run() -> Result<(), Error> { | ||||||
|     /// let mut map = HashMap::new(); |     /// let mut map = HashMap::new(); | ||||||
|     /// map.insert("lang", "rust"); |     /// map.insert("lang", "rust"); | ||||||
|     /// |     /// | ||||||
|     /// let client = reqwest::Client::new().unwrap(); |     /// let client = reqwest::Client::new()?; | ||||||
|     /// let res = client.post("http://httpbin.org") |     /// let res = client.post("http://httpbin.org") | ||||||
|     ///     .json(&map) |     ///     .json(&map) | ||||||
|     ///     .send(); |     ///     .send()?; | ||||||
|  |     /// # Ok(()) | ||||||
|  |     /// # } | ||||||
|     /// ``` |     /// ``` | ||||||
|     pub fn json<T: Serialize>(mut self, json: &T) -> RequestBuilder { |     pub fn json<T: Serialize>(mut self, json: &T) -> RequestBuilder { | ||||||
|         let body = serde_json::to_vec(json).expect("serde to_vec cannot fail"); |         let body = serde_json::to_vec(json).expect("serde to_vec cannot fail"); | ||||||
|   | |||||||
							
								
								
									
										58
									
								
								src/lib.rs
									
									
									
									
									
								
							
							
						
						
									
										58
									
								
								src/lib.rs
									
									
									
									
									
								
							| @@ -49,11 +49,16 @@ | |||||||
| //! including `String`, `Vec<u8>`, and `File`. If you wish to pass a custom | //! including `String`, `Vec<u8>`, and `File`. If you wish to pass a custom | ||||||
| //! Reader, you can use the `reqwest::Body::new()` constructor. | //! Reader, you can use the `reqwest::Body::new()` constructor. | ||||||
| //! | //! | ||||||
| //! ```no_run | //! ```rust | ||||||
| //! let client = reqwest::Client::new().unwrap(); | //! # use reqwest::Error; | ||||||
|  | //! # | ||||||
|  | //! # fn run() -> Result<(), Error> { | ||||||
|  | //! let client = reqwest::Client::new()?; | ||||||
| //! let res = client.post("http://httpbin.org/post") | //! let res = client.post("http://httpbin.org/post") | ||||||
| //!     .body("the exact body that is sent") | //!     .body("the exact body that is sent") | ||||||
| //!     .send(); | //!     .send()?; | ||||||
|  | //! # Ok(()) | ||||||
|  | //! # } | ||||||
| //! ``` | //! ``` | ||||||
| //! | //! | ||||||
| //! ### Forms | //! ### Forms | ||||||
| @@ -64,13 +69,18 @@ | |||||||
| //! This can be an array of tuples, or a `HashMap`, or a custom type that | //! This can be an array of tuples, or a `HashMap`, or a custom type that | ||||||
| //! implements [`Serialize`][serde]. | //! implements [`Serialize`][serde]. | ||||||
| //! | //! | ||||||
| //! ```no_run | //! ```rust | ||||||
|  | //! # use reqwest::Error; | ||||||
|  | //! # | ||||||
|  | //! # fn run() -> Result<(), Error> { | ||||||
| //! // This will POST a body of `foo=bar&baz=quux` | //! // This will POST a body of `foo=bar&baz=quux` | ||||||
| //! let params = [("foo", "bar"), ("baz", "quux")]; | //! let params = [("foo", "bar"), ("baz", "quux")]; | ||||||
| //! let client = reqwest::Client::new().unwrap(); | //! let client = reqwest::Client::new()?; | ||||||
| //! let res = client.post("http://httpbin.org/post") | //! let res = client.post("http://httpbin.org/post") | ||||||
| //!     .form(¶ms) | //!     .form(¶ms) | ||||||
| //!     .send(); | //!     .send()?; | ||||||
|  | //! # Ok(()) | ||||||
|  | //! # } | ||||||
| //! ``` | //! ``` | ||||||
| //! | //! | ||||||
| //! ### JSON | //! ### JSON | ||||||
| @@ -79,17 +89,22 @@ | |||||||
| //! a similar fashion the `form` method. It can take any value that can be | //! a similar fashion the `form` method. It can take any value that can be | ||||||
| //! serialized into JSON. | //! serialized into JSON. | ||||||
| //! | //! | ||||||
| //! ```no_run | //! ```rust | ||||||
|  | //! # use reqwest::Error; | ||||||
| //! # use std::collections::HashMap; | //! # use std::collections::HashMap; | ||||||
|  | //! # | ||||||
|  | //! # fn run() -> Result<(), Error> { | ||||||
| //! // This will POST a body of `{"lang":"rust","body":"json"}` | //! // This will POST a body of `{"lang":"rust","body":"json"}` | ||||||
| //! let mut map = HashMap::new(); | //! let mut map = HashMap::new(); | ||||||
| //! map.insert("lang", "rust"); | //! map.insert("lang", "rust"); | ||||||
| //! map.insert("body", "json"); | //! map.insert("body", "json"); | ||||||
| //! | //! | ||||||
| //! let client = reqwest::Client::new().unwrap(); | //! let client = reqwest::Client::new()?; | ||||||
| //! let res = client.post("http://httpbin.org/post") | //! let res = client.post("http://httpbin.org/post") | ||||||
| //!     .json(&map) | //!     .json(&map) | ||||||
| //!     .send(); | //!     .send()?; | ||||||
|  | //! # Ok(()) | ||||||
|  | //! # } | ||||||
| //! ``` | //! ``` | ||||||
| //! | //! | ||||||
| //! [hyper]: http://hyper.rs | //! [hyper]: http://hyper.rs | ||||||
| @@ -159,12 +174,31 @@ mod response; | |||||||
| /// | /// | ||||||
| /// # Examples | /// # Examples | ||||||
| /// | /// | ||||||
| /// ```no_run | /// ```rust | ||||||
|  | /// # extern crate reqwest; | ||||||
|  | /// # #[macro_use] extern crate error_chain; | ||||||
|  | /// # | ||||||
| /// use std::io::Read; | /// use std::io::Read; | ||||||
| /// | /// | ||||||
|  | /// # error_chain! { | ||||||
|  | /// #     foreign_links { | ||||||
|  | /// #         Reqwest(reqwest::Error); | ||||||
|  | /// #         Io(std::io::Error); | ||||||
|  | /// #     } | ||||||
|  | /// # } | ||||||
|  | /// # | ||||||
|  | /// # fn run() -> Result<()> { | ||||||
| /// let mut result = String::new(); | /// let mut result = String::new(); | ||||||
| /// reqwest::get("https://www.rust-lang.org").unwrap() | /// reqwest::get("https://www.rust-lang.org")? | ||||||
| ///     .read_to_string(&mut result); | ///     .read_to_string(&mut result)?; | ||||||
|  | /// # Ok(()) | ||||||
|  | /// # } | ||||||
|  | /// # | ||||||
|  | /// # fn main() { | ||||||
|  | /// #    if let Err(error) = run() { | ||||||
|  | /// #        println!("Error: {:?}", error); | ||||||
|  | /// #    } | ||||||
|  | /// # } | ||||||
| /// ``` | /// ``` | ||||||
| pub fn get<T: IntoUrl>(url: T) -> ::Result<Response> { | pub fn get<T: IntoUrl>(url: T) -> ::Result<Response> { | ||||||
|     let client = try!(Client::new()); |     let client = try!(Client::new()); | ||||||
|   | |||||||
| @@ -58,9 +58,11 @@ impl RedirectPolicy { | |||||||
|     /// |     /// | ||||||
|     /// # Example |     /// # Example | ||||||
|     /// |     /// | ||||||
|     /// ```no_run |     /// ```rust | ||||||
|     /// # use reqwest::RedirectPolicy; |     /// # use reqwest::{Error, RedirectPolicy}; | ||||||
|     /// # let mut client = reqwest::Client::new().unwrap(); |     /// # | ||||||
|  |     /// # fn run() -> Result<(), Error> { | ||||||
|  |     /// let mut client = reqwest::Client::new()?; | ||||||
|     /// client.redirect(RedirectPolicy::custom(|attempt| { |     /// client.redirect(RedirectPolicy::custom(|attempt| { | ||||||
|     ///     if attempt.previous().len() > 5 { |     ///     if attempt.previous().len() > 5 { | ||||||
|     ///         attempt.too_many_redirects() |     ///         attempt.too_many_redirects() | ||||||
| @@ -71,6 +73,8 @@ impl RedirectPolicy { | |||||||
|     ///         attempt.follow() |     ///         attempt.follow() | ||||||
|     ///     } |     ///     } | ||||||
|     /// })); |     /// })); | ||||||
|  |     /// # Ok(()) | ||||||
|  |     /// # } | ||||||
|     /// ``` |     /// ``` | ||||||
|     pub fn custom<T>(policy: T) -> RedirectPolicy |     pub fn custom<T>(policy: T) -> RedirectPolicy | ||||||
|     where T: Fn(RedirectAttempt) -> RedirectAction + Send + Sync + 'static { |     where T: Fn(RedirectAttempt) -> RedirectAction + Send + Sync + 'static { | ||||||
|   | |||||||
| @@ -87,27 +87,31 @@ impl Response { | |||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /// Try and deserialize the response body as JSON. |     /// Try and deserialize the response body as JSON using `serde`. | ||||||
|     /// |     /// | ||||||
|     /// # Examples |     /// # Examples | ||||||
|     /// |     /// | ||||||
|     /// ```rust,no_run |     /// ```rust | ||||||
|     /// extern crate reqwest; |     /// # extern crate reqwest; | ||||||
|     /// #[macro_use] |     /// # #[macro_use] extern crate serde_derive; | ||||||
|     /// extern crate serde_derive; |     /// # | ||||||
|     /// |     /// # use reqwest::Error; | ||||||
|  |     /// # | ||||||
|     /// #[derive(Deserialize)] |     /// #[derive(Deserialize)] | ||||||
|     /// struct User { |     /// struct Response { | ||||||
|     ///     name: String, |     ///     origin: String, | ||||||
|     ///     age: u8, |  | ||||||
|     /// } |     /// } | ||||||
|     /// |     /// | ||||||
|     /// fn main() { |     /// # fn run() -> Result<(), Error> { | ||||||
|     ///     let user: User = reqwest::get("http://127.0.0.1/user.json") |     /// let resp: Response = reqwest::get("http://127.0.0.1/user.json")?.json()?; | ||||||
|     ///         .expect("network error") |     /// # Ok(()) | ||||||
|     ///         .json() |     /// # } | ||||||
|     ///         .expect("malformed json"); |     /// # | ||||||
|     /// } |     /// # fn main() { | ||||||
|  |     /// #     if let Err(error) = run() { | ||||||
|  |     /// #         println!("Error: {:?}", error); | ||||||
|  |     /// #     } | ||||||
|  |     /// # } | ||||||
|     /// ``` |     /// ``` | ||||||
|     #[inline] |     #[inline] | ||||||
|     pub fn json<T: DeserializeOwned>(&mut self) -> ::Result<T> { |     pub fn json<T: DeserializeOwned>(&mut self) -> ::Result<T> { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user