OkHttp的使用--GET/POST(非同步)
阿新 • • 發佈:2019-02-14
非同步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();
}
}