From 97f22ce57d84e9d4dcb310b139463e2e3e58695b Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Tue, 14 May 2019 12:58:59 +0200 Subject: [PATCH] src/client/http_client.rs: implement h2 upload without flow control so far ... --- src/client/http_client.rs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/client/http_client.rs b/src/client/http_client.rs index 99b628fc..857adc40 100644 --- a/src/client/http_client.rs +++ b/src/client/http_client.rs @@ -407,6 +407,22 @@ impl H2Client { self.request(req) } + pub fn upload(&self, path: &str, param: Option, data: Vec) -> impl Future { + let request = Self::request_builder("localhost", "POST", path, param).unwrap(); + + self.h2.clone() + .ready() + .map_err(Error::from) + .and_then(move |mut send_request| { + let (response, mut stream) = send_request.send_request(request, false).unwrap(); + // fixme: implement flow control + stream.send_data(bytes::Bytes::from(data), true); + response + .map_err(Error::from) + .and_then(Self::h2api_response) + }) + } + fn request( &self, request: Request<()>, @@ -416,7 +432,6 @@ impl H2Client { .ready() .map_err(Error::from) .and_then(move |mut send_request| { - // fixme: what about stream/upload? let (response, _stream) = send_request.send_request(request, true).unwrap(); response .map_err(Error::from)