1. 程式人生 > >OkHttp的使用--GET/POST(非同步)

OkHttp的使用--GET/POST(非同步)

非同步Get

GitHub提供的示例程式碼和國內一些部落格提供的示例程式碼有細節差異
(主要在onFailure和onResponse的引數上)
例如 http://blog.csdn.net/lmj623565791/article/details/47911083
onFailure(Request request, IOException e)
onResponse(final Response response)

示例程式碼

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