blob: 63ae9b3da99d58faf901d3b586ca73c5b965f846 [file] [log] [blame]
extern crate hyper;
extern crate multipart;
use hyper::client::Request;
use hyper::method::Method;
use hyper::net::Streaming;
use multipart::client::Multipart;
use std::io::Read;
fn main() {
let url = "http://localhost:80".parse()
.expect("Failed to parse URL");
let request = Request::new(Method::Post, url)
.expect("Failed to create request");
let mut multipart = Multipart::from_request(request)
.expect("Failed to create Multipart");
write_body(&mut multipart)
.expect("Failed to write multipart body");
let mut response = multipart.send().expect("Failed to send multipart request");
if !response.status.is_success() {
let mut res = String::new();
response.read_to_string(&mut res).expect("failed to read response");
println!("response reported unsuccessful: {:?}\n {}", response, res);
}
// Optional: read out response
}
fn write_body(multi: &mut Multipart<Request<Streaming>>) -> hyper::Result<()> {
let mut binary = "Hello world from binary!".as_bytes();
multi.write_text("text", "Hello, world!")?;
multi.write_file("file", "lorem_ipsum.txt")?;
// &[u8] impl Read
multi.write_stream("binary", &mut binary, None, None)
.and(Ok(()))
}