基本用法示例
我喜歡把我的 OkHttp
包裝成一個名為 HttpClient
的類,在這個類中,我有最常用的每個主要 HTTP 動詞 post
,get
,put
和 delete
的方法。 (我通常包含一個介面,以便保持它的實現,以便能夠輕鬆地更改為不同的實現,如果需要):
public class HttpClient implements HttpClientInterface{
private static final String TAG = OkHttpClient.class.getSimpleName();
public static final MediaType JSON
= MediaType.parse("application/json; charset=utf-8");
OkHttpClient httpClient = new OkHttpClient();
@Override
public String post(String url, String json) throws IOException {
Log.i(TAG, "Sending a post request with body:\n" + json + "\n to URL: " + url);
RequestBody body = RequestBody.create(JSON, json);
Request request = new Request.Builder()
.url(url)
.post(body)
.build();
Response response = httpClient.newCall(request).execute();
return response.body().string();
}
除了 1 個單詞(.put(body)
)之外,put
,get
和 delete
的語法是相同的,所以釋出該程式碼也可能是令人討厭的。用法非常簡單,只需使用 json
有效負載呼叫某些 url
上的相應方法,該方法將返回一個字串,以便稍後使用和解析。讓我們假設響應將是一個 json
,我們可以輕鬆地建立一個 JSONObject
:
String response = httpClient.post(MY_URL, JSON_PAYLOAD);
JSONObject json = new JSONObject(response);
// continue to parse the response according to it's structure