1.在app的build.gradle中添加依賴庫
implementation 'com.squareup.okhttp3:okhttp:3.4.1'
2.在AndroidMainfest中添加網絡權限
<uses-permission android:name="android.permission.INTERNET" />
3.如果是新版本的還需要允許http請求(我這里是添加配置文件)
在AndroidMainfest中的application中添加
android:networkSecurityConfig="@xml/network_security_config"
network_security_config.xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
4.簡單使用
// 加載網路圖片數(shù)據(jù)
private void loadDatas(int page) {
// 創(chuàng)建一個請求體
Request request = new Request.Builder().url(mUrl + page).build();
OkHttpClient okHttpClient = new OkHttpClient();
okHttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
Log.i("TAG", "加載錯誤 IOException=" + e.toString());
e.printStackTrace();
}
@Override
public void onResponse(Call call, Response response) throws IOException {
//如果響應成功
if (response.isSuccessful()) {
//獲得響應體的結果
String result = response.body().string();
try {
JSONObject json = new JSONObject(result);
// 獲得了一個array的幾何
JSONArray array = new JSONArray(json.getString("results"));
// 看見幾何或者數(shù)組 想要拿到里面的東西需要進行for循環(huán)
for (int i = 0; i < array.length(); i++) {
//獲取一個json對象
JSONObject jsonObject = array.getJSONObject(i);
String urls = jsonObject.getString("url");
Log.e("tag", "========== url: " + urls);
mUrls.add(urls);
}
// 通過handle來到主線程修改Ui
mHandler.sendEmptyMessage(2);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
});
}