需要用到的jar包:okhttp3.2.0.jar
鏈接:https://pan.baidu.com/s/1KYIaGnmYdLctjPjQsA5pYQ 提取碼:6s5w
引入方式見上一篇文章:ZXing創(chuàng)建二維碼簡單實(shí)現(xiàn)
像網(wǎng)絡(luò)請求這些耗時操作要放在子線程中,這里因?yàn)椴贿M(jìn)行太復(fù)雜的操作,所以我們直接new一個線程并啟動:
new Thread(
new Runnable(){
@Override
public void run() {
//待會兒在這里實(shí)現(xiàn)OkHttp請求
}
}
).start();
在剛才的run()方法中,新建一個OkhttpClient對象,新建Request對象進(jìn)行請求:
OkHttpClient client=new OkHttpClient();
Request request=new Request
.Builder()
.url("https://www.baidu.com")//要訪問的鏈接
.build();
然后新建Call對象,把剛才創(chuàng)建的client和request都調(diào)動起來:
Call call=client.newCall(request);
最后通過調(diào)用call的enqueue()方法監(jiān)聽返回結(jié)果:
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
補(bǔ)充:OkHttp默認(rèn)是GET請求方式,如果需要傳遞參數(shù)(POST請求)也很簡單,加入如下代碼即可:
FormBody.Builder builder=new FormBody.Builder();
builder.add("name","ZhangSan");//要傳遞的參數(shù),前面是鍵,后面是值
別忘了在Request后面添加post()方法:
Request request=new Request
.Builder()
.url("https://www.baidu.com")//要訪問的鏈接
.post(builder.build())//這是新添的代碼
.build();