1.在build.gradle(:app)引入okhttp网络请求框架
//okhttp网络请求框架
implementation 'com.squareup.okhttp3:okhttp:3.12.1'
debugImplementation'com.squareup.okhttp3:logging-interceptor:3.12.1'
implementation fileTree(dir:'libs',include:['*.jar'])
2.在xml文件夹下建立network_security_config.xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true"/>
</network-security-config>
3.在AndroidManifest.xml中添加下面的语句
(1)添加uses-permission
<uses-permission android:name="android.permission.INTERNET" /> <!--网络-->
(2)在application添加
android:networkSecurityConfig="@xml/network_security_config"
4.在com.example.okhttp文件夹下创建utils文件夹再创建okhttpHelper.java
内容为:
package com.example.okhttp.utils;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
public class okhttpHelper {
public static void getRequest(String url, Callback callback){
//使用get异步请求
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url(url)
.build();
client.newCall(request).enqueue(callback);
}
}
5.在MainActivity.java添加下面的语句
private void initRequest() {
String url ="http://t.weather.sojson.com/api/weather/city/101030100";
okhttpHelper.getRequest(url, new Callback() {
@Override
public void onFailure(Call call, IOException e){
Log.i("11111","onFailure:"+e.getMessage());
}
@Override
public void onResponse(Call call, Response response) throws IOException{
String result = response.body().string();
if(response.isSuccessful())
{
//回调的方法执行在子线程
Log.d("result:",result);
}
}
});
}
已知:
运行结果:
说明运行成功!!