参考 http://www.open-open.com/lib/view/open1462258981866.html https://github.com/square/okhttp/tree/3f7a3344a4c85aa3bbb879dabac5ee625ab987f3/samples/guide/src/main/java/okhttp3/recipes
GitHub提供的示例代码和国内一些博客提供的示例代码有细节差异 (主要在onFailure和onResponse的参数上) 例如 http://blog.csdn.net/lmj623565791/article/details/47911083 onFailure(Request request, IOException e) onResponse(final Response response)
https://github.com/square/okhttp/blob/3f7a3344a4c85aa3bbb879dabac5ee625ab987f3/samples/guide/src/main/java/okhttp3/recipes/AsynchronousGet.java
public final class AsynchronousGet { private final OkHttpClient client = new OkHttpClient(); public void run() throws Exception { Request request = new Request.Builder() .url("http://publicobject.com/helloworld.txt") .build(); client.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { e.printStackTrace(); } @Override public void onResponse(Call call, Response response) throws IOException { try (ResponseBody responseBody = response.body()) { if (!response.isSuccessful()) throw new IOException("Unexpected code " + response); Headers responseHeaders = response.headers(); for (int i = 0, size = responseHeaders.size(); i < size; i++) { System.out.println(responseHeaders.name(i) + ": " + responseHeaders.value(i)); } System.out.println(responseBody.string());//获取字符串 //response.body().bytes() 二进制字节 //response.body().byteStream() 获取比特流 } } }); } public static void main(String... args) throws Exception { new AsynchronousGet().run(); } }