1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
extern crate hyper; extern crate json; pub mod request; pub mod response; pub use request::{get, post, put, head, delete}; pub use response::Response; pub type RequestsResult = hyper::Result<Response>; #[cfg(test)] mod test { use super::*; use hyper; #[test] fn simple_get() { const URL: &'static str = "http://httpbin.org/get"; let res = get(URL).unwrap(); assert_eq!(res.url(), URL); assert_eq!(res.status_code(), hyper::Ok); assert_eq!(res.reason(), "OK"); let data = res.json().unwrap(); println!("{:?}", data); assert!(data["url"].is(URL)); assert!(data["headers"]["Host"].is("httpbin.org")); assert!(data["headers"]["User-Agent"].is(concat!("requests-rs/", env!("CARGO_PKG_VERSION")))); } #[test] fn simple_post() { const URL: &'static str = "http://httpbin.org/post"; let res = post(URL).unwrap(); assert_eq!(res.url(), URL); assert_eq!(res.status_code(), hyper::Ok); assert_eq!(res.reason(), "OK"); } #[test] fn simple_put() { const URL: &'static str = "http://httpbin.org/put"; let res = put(URL).unwrap(); assert_eq!(res.url(), URL); assert_eq!(res.status_code(), hyper::Ok); assert_eq!(res.reason(), "OK"); } #[test] fn simple_head() { const URL: &'static str = "http://httpbin.org/get"; let res = head(URL).unwrap(); assert_eq!(res.url(), URL); assert_eq!(res.status_code(), hyper::Ok); assert_eq!(res.reason(), "OK"); } #[test] fn simple_delete() { const URL: &'static str = "http://httpbin.org/delete"; let res = delete(URL).unwrap(); assert_eq!(res.url(), URL); assert_eq!(res.status_code(), hyper::Ok); assert_eq!(res.reason(), "OK"); } #[test] fn user_agent() { let useragent = concat!("{\n \"user-agent\": \"requests-rs/", env!("CARGO_PKG_VERSION"), "\"\n}\n"); const URL: &'static str = "http://httpbin.org/user-agent"; let res = get(URL).unwrap(); assert_eq!(res.url(), URL); assert_eq!(res.status_code(), hyper::Ok); assert_eq!(res.reason(), "OK"); assert_eq!(res.text(), Some(useragent)); } #[test] fn user_agent_json() { const URL: &'static str = "http://httpbin.org/user-agent"; let res = get(URL).unwrap(); assert!(res.is_json()); let ua = res.json().unwrap(); assert!(ua["user-agent"].is(concat!("requests-rs/", env!("CARGO_PKG_VERSION")))); } }