From e90fecef8675723b261370fd89f726221e6f56c5 Mon Sep 17 00:00:00 2001 From: jwilson Date: Sat, 14 Mar 2015 21:34:21 -0400 Subject: [PATCH] Stream the response in okcurl. Beneficial for this website in particular: https://http2.golang.org/clockstream --- .../src/main/java/com/squareup/okhttp/curl/Main.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/okcurl/src/main/java/com/squareup/okhttp/curl/Main.java b/okcurl/src/main/java/com/squareup/okhttp/curl/Main.java index 129b35a6d..c6a85e173 100644 --- a/okcurl/src/main/java/com/squareup/okhttp/curl/Main.java +++ b/okcurl/src/main/java/com/squareup/okhttp/curl/Main.java @@ -49,7 +49,9 @@ import javax.net.ssl.SSLSession; import javax.net.ssl.SSLSocketFactory; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; +import okio.BufferedSource; import okio.Okio; +import okio.Sink; import static java.util.concurrent.TimeUnit.SECONDS; @@ -151,9 +153,15 @@ public class Main extends HelpOption implements Runnable { System.out.println(); } - response.body().source().readAll(Okio.sink(System.out)); + // Stream the response to the System.out as it is returned from the server. + Sink out = Okio.sink(System.out); + BufferedSource source = response.body().source(); + while (!source.exhausted()) { + out.write(source.buffer(), source.buffer().size()); + out.flush(); + } + response.body().close(); - System.out.flush(); } catch (IOException e) { e.printStackTrace(); } finally {