@@ -69,6 +69,12 @@ public void onNext(T object) {
6969 }
7070 }
7171
72+ public class SkipResultCallback extends ResultCallbackTemplate <ResponseCallback <Void >, Void > {
73+ @ Override
74+ public void onNext (Void object ) {
75+ }
76+ }
77+
7278 private ChannelProvider channelProvider ;
7379
7480 private String resource ;
@@ -401,6 +407,31 @@ public <T> void post(TypeReference<T> typeReference, ResultCallback<T> resultCal
401407 channel .pipeline ().addLast (new JsonObjectDecoder ());
402408 channel .pipeline ().addLast (jsonResponseHandler );
403409
410+ postChunkedStreamRequest (requestProvider , channel , body );
411+ }
412+
413+ public void postStream (InputStream body ) {
414+ SkipResultCallback resultCallback = new SkipResultCallback ();
415+
416+ HttpRequestProvider requestProvider = httpPostRequestProvider (null );
417+
418+ Channel channel = getChannel ();
419+
420+ HttpResponseHandler responseHandler = new HttpResponseHandler (requestProvider , resultCallback );
421+
422+ channel .pipeline ().addLast (new ChunkedWriteHandler ());
423+ channel .pipeline ().addLast (responseHandler );
424+
425+ postChunkedStreamRequest (requestProvider , channel , body );
426+
427+ try {
428+ resultCallback .awaitCompletion ();
429+ } catch (InterruptedException e ) {
430+ throw new RuntimeException (e );
431+ }
432+ }
433+
434+ private void postChunkedStreamRequest (HttpRequestProvider requestProvider , Channel channel , InputStream body ) {
404435 HttpRequest request = requestProvider .getHttpRequest (resource );
405436
406437 // don't accept FullHttpRequest here
0 commit comments