OkHttp
github okhttpokhttp doc
使用 request->okHttpClient->respone
//Initial
OkHttpClient okHttpClient = new OkHttpClient();
okHttpClient.setConnectTimeout(30, TimeUnit.SECONDS);
okHttpClient.setReadTimeout(30, TimeUnit.SECONDS);
//get
Request request = new Request.Builder()
.url(url)
.build();
//post
RequestBody body = new FormBody.Builder()
.add("name", "Cuber")
.add("age", "26")
.build();
Request request = new Request.Builder()
.url(url)
.post(body)
.build();
//Send
Response response = client.newCall(request).execute();
//如果response是null, 就代表timeout或没有网络
//使用Callback
Response response = client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Request request, IOException e) {
//timeout或没有网络
//注意!这里是backgroundThread
}
@Override
public void onResponse(Response response) throws IOException {
//成功
//注意!这里是backgroundThread
}
});
Request
Request request = new Request.Builder()
.url(url)
.post(body)
.build();
RequestBody <-- FormBody,MultipartBody
- RequestBody
static RequestBody RequestBody.create(MediaType, String) static RequestBody RequestBody.create(MediaType, File) static RequestBody RequestBody.create(MediaType, byte[]) - FormBody
FormBody body = new FormBody.Builder() .add("name", "Cuber") .add("age", "26") .build(); - MultipartBody
Response
//The response body must be closed.
ResponseBody Response.body()
Response.close()
Response.body().close()
Response.body().source().close()
Response.body().charStream().close()
Response.body().byteString().close()
Response.body().bytes()
Response.body().string()