use Buffered Readers and Writers
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
//! Client Requests
|
||||
use std::io::net::tcp::TcpStream;
|
||||
use std::io::IoResult;
|
||||
use std::io::{BufferedWriter, IoResult};
|
||||
|
||||
use url::Url;
|
||||
|
||||
@@ -23,7 +23,7 @@ pub struct Request {
|
||||
/// The HTTP version of this request.
|
||||
pub version: version::HttpVersion,
|
||||
headers_written: bool,
|
||||
body: TcpStream,
|
||||
body: BufferedWriter<TcpStream>,
|
||||
}
|
||||
|
||||
impl Request {
|
||||
@@ -43,6 +43,7 @@ impl Request {
|
||||
debug!("port={}", port);
|
||||
|
||||
let stream = try_io!(TcpStream::connect(host.as_slice(), port));
|
||||
let stream = BufferedWriter::new(stream);
|
||||
let mut headers = Headers::new();
|
||||
headers.set(Host(host));
|
||||
Ok(Request {
|
||||
@@ -82,8 +83,9 @@ impl Request {
|
||||
/// Consumes the Request.
|
||||
pub fn send(mut self) -> HttpResult<Response> {
|
||||
try_io!(self.flush());
|
||||
try_io!(self.body.close_write());
|
||||
Response::new(self.body)
|
||||
let mut raw = self.body.unwrap();
|
||||
try_io!(raw.close_write());
|
||||
Response::new(raw)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
//! Client Responses
|
||||
use std::io::{Reader, IoResult};
|
||||
use std::io::{BufferedReader, IoResult};
|
||||
use std::io::net::tcp::TcpStream;
|
||||
|
||||
use header::{mod, ContentLength, TransferEncoding, Chunked};
|
||||
@@ -16,13 +16,14 @@ pub struct Response {
|
||||
pub headers: header::Headers,
|
||||
/// The HTTP version of this response from the server.
|
||||
pub version: version::HttpVersion,
|
||||
body: HttpReader<TcpStream>,
|
||||
body: HttpReader<BufferedReader<TcpStream>>,
|
||||
}
|
||||
|
||||
impl Response {
|
||||
|
||||
/// Creates a new response from a server.
|
||||
pub fn new(mut tcp: TcpStream) -> HttpResult<Response> {
|
||||
pub fn new(tcp: TcpStream) -> HttpResult<Response> {
|
||||
let mut tcp = BufferedReader::new(tcp);
|
||||
let (version, status) = try!(read_status_line(&mut tcp));
|
||||
let mut headers = try!(header::Headers::from_raw(&mut tcp));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user