OkHttp

github okhttp
okhttp 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

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