OkHttp的使用--GETPOST(异步)

    xiaoxiao2025-11-16  2

    参考 http://www.open-open.com/lib/view/open1462258981866.html https://github.com/square/okhttp/tree/3f7a3344a4c85aa3bbb879dabac5ee625ab987f3/samples/guide/src/main/java/okhttp3/recipes

    异步Get

    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(); } }

    Post

    post string

    public final class PostString { public static final MediaType MEDIA_TYPE_MARKDOWN = MediaType.parse("text/x-markdown; charset=utf-8"); private final OkHttpClient client = new OkHttpClient(); public void run() throws Exception { String postBody = "" + "Releases\n" + "--------\n" + "\n" + " * _1.0_ May 6, 2013\n" + " * _1.1_ June 15, 2013\n" + " * _1.2_ August 11, 2013\n"; Request request = new Request.Builder() .url("https://api.github.com/markdown/raw") .post(RequestBody.create(MEDIA_TYPE_MARKDOWN, postBody)) .build(); //同步 try (Response response = client.newCall(request).execute()) { if (!response.isSuccessful()) throw new IOException("Unexpected code " + response); System.out.println(response.body().string()); } /*异步 client.newCall(request).enqueue(new Callback() { *** }); */ } public static void main(String... args) throws Exception { new PostString().run(); } }
    转载请注明原文地址: https://ju.6miu.com/read-1304258.html
    最新回复(0)