okhttp是一个第三方类库,用于android中请求网络(类似我们世界第一语言php中的curl啦)。
这是一个开源项目,是安卓端最火热的轻量级框架,由移动支付Square公司贡献(该公司还贡献了Picasso和LeakCanary) 。用于替代HttpUrlConnection和Apache HttpClient(android API23 里已移除HttpClient)。
1.首先前往github 找到okhttp下载地址
https://github.com/square/okhttp
在build_gradle 文件
dependencies{
}
中添加类库地址
testImplementation 'com.squareup.okhttp3:mockwebserver:3.10.0'
点击右上角同步
![](https://i-blog.csdnimg.cn/blog_migrate/3d3eee6d67bc1c0afc8d4009554df44f.png)
2.androidManifest.xml文件中 开启网络
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
3.测试activity中添加button点击事件
4.
//1 实例化okhttp对象
OkHttpClient okHttpClient = new OkHttpClient();
//2.request 是基于构造者模式
Request.Builder builder = new Request.Builder();
//get方法
Request request = builder.get().url("http://www.imooc.com/").build();
//3.将request封装为Call
Call call = okHttpClient.newCall(request);
//直接执行请求返回response
//Response response = call.execute();
//4.异步执行call 加入队列
call.enqueue(new Callback() {
//发生错误时
@Override
public void onFailure(Call call, IOException e) {
L.e("onFailure" + e.getMessage());//打印错误信息
}
//执行成功时
@Override
public void onResponse(Call call, Response response) throws IOException {
L.e("onResponse");
String res = response.body().string();//获取response结果
L.e(res);//打印结果
}
});
效果如下