From 65049360239fd16908644b520175ec15cd7aa19a Mon Sep 17 00:00:00 2001 From: Marko Lalic Date: Thu, 28 May 2015 18:39:48 +0200 Subject: [PATCH] docs(examples): add an example using an HTTP/2 client --- examples/client_http2.rs | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 examples/client_http2.rs diff --git a/examples/client_http2.rs b/examples/client_http2.rs new file mode 100644 index 00000000..41f65c19 --- /dev/null +++ b/examples/client_http2.rs @@ -0,0 +1,34 @@ +#![deny(warnings)] +extern crate hyper; + +extern crate env_logger; + +use std::env; +use std::io; + +use hyper::Client; +use hyper::header::Connection; +use hyper::http2; + +fn main() { + env_logger::init().unwrap(); + + let url = match env::args().nth(1) { + Some(url) => url, + None => { + println!("Usage: client "); + return; + } + }; + + let mut client = Client::with_protocol(http2::new_protocol()); + + // `Connection: Close` is not a valid header for HTTP/2, but the client handles it gracefully. + let mut res = client.get(&*url) + .header(Connection::close()) + .send().unwrap(); + + println!("Response: {}", res.status); + println!("Headers:\n{}", res.headers); + io::copy(&mut res, &mut io::stdout()).unwrap(); +}