需要用到的jar包:okhttp3.2.0.jar
链接:https://pan.baidu.com/s/1KYIaGnmYdLctjPjQsA5pYQ 提取码:6s5w
引入方式见上一篇文章:ZXing创建二维码简单实现
像网络请求这些耗时操作要放在子线程中,这里因为不进行太复杂的操作,所以我们直接new一个线程并启动:
new Thread(
new Runnable(){
@Override
public void run() {
//待会儿在这里实现OkHttp请求
}
}
).start();
在刚才的run()方法中,新建一个OkhttpClient对象,新建Request对象进行请求:
OkHttpClient client=new OkHttpClient();
Request request=new Request
.Builder()
.url("https://www.baidu.com")//要访问的链接
.build();
然后新建Call对象,把刚才创建的client和request都调动起来:
Call call=client.newCall(request);
最后通过调用call的enqueue()方法监听返回结果:
call.enqueue(new okhttp3.Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, okhttp3.Response response) throws IOException {
String res=response.body().string();
Log.i("response===========>",res);
}
});
如果在打印日志中看到这个东东,那就说明你做对了
image.png
补充:OkHttp默认是GET请求方式,如果需要传递参数(POST请求)也很简单,加入如下代码即可:
FormBody.Builder builder=new FormBody.Builder();
builder.add("name","ZhangSan");//要传递的参数,前面是键,后面是值
别忘了在Request后面添加post()方法:
Request request=new Request
.Builder()
.url("https://www.baidu.com")//要访问的链接
.post(builder.build())//这是新添的代码
.build();