improvements
This commit is contained in:
@@ -3,7 +3,8 @@ use std::io::{self, Read};
|
||||
use hyper::{Method, StatusCode, HttpVersion, Url};
|
||||
use hyper::header::Headers;
|
||||
|
||||
use super::sync;
|
||||
use ::body::Body;
|
||||
use ::sync;
|
||||
|
||||
pub struct Client {
|
||||
inner: sync::Client,
|
||||
@@ -42,20 +43,31 @@ pub struct RequestBuilder<'a> {
|
||||
version: HttpVersion,
|
||||
headers: Headers,
|
||||
|
||||
body: Option<()>,
|
||||
body: Option<Body>,
|
||||
}
|
||||
|
||||
impl<'a> RequestBuilder<'a> {
|
||||
pub fn body(mut self, body: ()) -> RequestBuilder<'a> {
|
||||
self.body = Some(body);
|
||||
|
||||
pub fn header<H: ::header::Header>(mut self, header: H) -> RequestBuilder<'a> {
|
||||
self.headers.set(header);
|
||||
self
|
||||
}
|
||||
|
||||
pub fn send(mut self) -> Result<Response, String> {
|
||||
self.headers.set(::hyper::header::ContentLength(0));
|
||||
pub fn headers(mut self, headers: ::header::Headers) -> RequestBuilder<'a> {
|
||||
self.headers.extend(headers.iter());
|
||||
self
|
||||
}
|
||||
|
||||
pub fn body<T: Into<Body>>(mut self, body: T) -> RequestBuilder<'a> {
|
||||
self.body = Some(body.into());
|
||||
self
|
||||
}
|
||||
|
||||
pub fn send(mut self) -> ::Result<Response> {
|
||||
self.headers.set(::header::ContentLength(0));
|
||||
let req = try!(self.client.inner.request(self.method, self.url, self.version, self.headers));
|
||||
|
||||
let res = try!(req.end().map_err(|e| format!("RequestError: end: {}", e)));
|
||||
let res = try!(req.end());
|
||||
Ok(Response {
|
||||
inner: res
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user