导入依赖
// 网络请求
implementation 'com.squareup.retrofit2:retrofit:2.6.1'
implementation 'com.squareup.retrofit2:converter-gson:2.6.1'
网络请求权限
<!--网络请求权限-->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
manifest中设置网络明文
android:networkSecurityConfig="@xml/nettools"
网络明文
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<!--禁用掉明文流量请求的检查-->
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
okhttp的简单使用
public class MainActivity extends AppCompatActivity {
private static final String TAG = "网络请求";
private static final String URL = "http://www.baidu.com";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 异步网络请求
okhttpRequest(URL, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
e.printStackTrace();
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String string = response.body().string();
Log.e(TAG, "onResponse: " + string);
// 更新UI组件需回到主线程
/*runOnUiThread(() -> {
textView.setText = string
});*/
}
});
}
// 使用okhttp进行网络请求
private void okhttpRequest(String url, Callback callback) {
OkHttpClient client = new OkHttpClient();
Request request = new Builder().url(url).build();
client.newCall(request).enqueue(callback);
}
}