update example error handling

- Add error-chain dev dependency
- Add error handling using `?` instead of `unwrap`
This commit is contained in:
James Kominick
2017-05-21 14:34:20 -04:00
parent 241e5069b4
commit e9d5774365
3 changed files with 34 additions and 10 deletions

View File

@@ -22,3 +22,4 @@ libflate = "0.1.5"
[dev-dependencies]
env_logger = "0.4"
serde_derive = "1.0"
error-chain = "0.10"

View File

@@ -1,15 +1,24 @@
// cargo run --example response_json
//! `cargo run --example response_json`
extern crate reqwest;
#[macro_use] extern crate serde_derive;
#[macro_use] extern crate error_chain;
#[macro_use]
extern crate serde_derive;
error_chain! {
foreign_links {
ReqError(reqwest::Error);
}
}
#[derive(Debug, Deserialize)]
struct Response {
origin: String,
}
fn main() {
let mut res = reqwest::get("https://httpbin.org/ip").unwrap();
println!("JSON: {:?}", res.json::<Response>());
fn run() -> Result<()> {
let mut res = reqwest::get("https://httpbin.org/ip")?;
let json = res.json::<Response>()?;
println!("JSON: {:?}", json);
Ok(())
}
quick_main!(run);

View File

@@ -1,17 +1,31 @@
//! `cargo run --example simple`
extern crate reqwest;
extern crate env_logger;
#[macro_use] extern crate error_chain;
fn main() {
env_logger::init().unwrap();
error_chain! {
foreign_links {
ReqError(reqwest::Error);
IoError(std::io::Error);
}
}
fn run() -> Result<()> {
env_logger::init()
.expect("Failed to initialize logger");
println!("GET https://www.rust-lang.org");
let mut res = reqwest::get("https://www.rust-lang.org").unwrap();
let mut res = reqwest::get("https://www.rust-lang.org")?;
println!("Status: {}", res.status());
println!("Headers:\n{}", res.headers());
::std::io::copy(&mut res, &mut ::std::io::stdout()).unwrap();
// copy the response body directly to stdout
let _ = std::io::copy(&mut res, &mut std::io::stdout())?;
println!("\n\nDone.");
Ok(())
}
quick_main!(run);