OkHttp網(wǎng)絡(luò)請求簡單實(shí)現(xiàn)

需要用到的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();
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容