日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OkHttp的详细使用方法

發布時間:2024/1/18 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OkHttp的详细使用方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

      • OkHttp簡介
      • 添加依賴
      • 同步請求
          • GET
          • POST
      • 異步請求
          • GET
          • POST
      • 同步請求、異步請求區別
      • GET、POST請求方式區別

OkHttp簡介

OkHttp是由Square公司開發的,除了OkHttp 之外,還開發了 Picasso、Retrofit等著名的開源項目,現在已經成了廣大Android開發者首選的網絡通信庫。OkHttp地址是:https://github.com/square/okhttp。

添加依賴

//OkHttp(網絡請求框架) implementation 'com.squareup.okhttp3:okhttp:3.4.1'

同步請求

GET

想要發送一個請求呢,這兩個對象是不可少的,當然這里還只是一個空的請求

// 實例化OkHttpClient對象 OkHttpClient client = new OkHttpClient(); // 實例化Request對象(空) Request request=new Request.Builder().build();

我們先來加上一個目標地址

// 實例化Request對象(空)Request request=new Request.Builder().url("www.baidu.com").build();

發送請求,獲得數據,由于這里有IO操作,所以try catch一下

try {// Response對象存儲的就是獲取的數據Response response=client.newCall(request).execute();} catch (IOException e) {e.printStackTrace();}

然后將上面Reeponse得到的數據轉化成具體內容

String data = response.body().string();
POST

POST請求的話和GET請求差不多,就多了個RequestBody對象,用來攜帶傳入的參數

//實例化RequestBody對象 RequestBody requestBody=new FormBody.Builder().add("","").build();

然后在Request中調用.post()方法,傳入RequestBody

// 實例化Request對象Request request = new Request.Builder().url("www.baidu.com").post(requestBody).build();

其他和GET方式完全一樣,如下

// 實例化OkHttpClient對象OkHttpClient client = new OkHttpClient();//實例化RequestBody對象RequestBody requestBody = new FormBody.Builder().add("", "").build();// 實例化Request對象Request request = new Request.Builder().url("www.baidu.com").post(requestBody).build();try {// Response對象存儲的就是獲取的數據Response response = client.newCall(request).execute();String data = response.body().string();} catch (IOException e) {e.printStackTrace();}

異步請求

異步請求和同步請求的區別就是:發送請求那一塊,同步請求是Response response = client.newCall(request).execute();,而異步請求是:client.newCall(request).enqueue(new Callback());

GET
OkHttpClient client = new OkHttpClient();Request request = new Request.Builder().url("www.baidu.com").build();client.newCall(request).enqueue(new Callback() {@Overridepublic void onFailure(Call call, IOException e) {}@Overridepublic void onResponse(Call call, Response response) throws IOException {String responseData = response.body().string();setUI(responseData);}});
POST
OkHttpClient client = new OkHttpClient(); RequestBody requestBody = new FormBody.Builder().add("", "").build();Request request = new Request.Builder().url("www.baidu.com").post(requestBody).build(); client.newCall(request).enqueue(new Callback() {@Overridepublic void onFailure(Call call, IOException e) {}@Overridepublic void onResponse(Call call, Response response) throws IOException {String responseData = response.body().string();setUI(responseData);}});

相信很多小伙伴有一個疑問,同步請求、異步請求、GET、POST我都會了,那我他們的區別是什么呢?

同步請求、異步請求區別

用簡單通俗一點的語言說一下:

同步請求:同步請求是發送請求后,只能等服務器處理完這個請求,才能去干別的

異步請求:異步請求是發送請求后,服務器會在一邊處理請求,中途可以去干別的

優劣:異步請求的優勢很明顯,所以開發中能用異步請求就用異步請求

GET、POST請求方式區別

這是來自W3school的表格,可以看到最后一欄,GET方式會暴露數據,而POST不會,所以顯而易見,POST的請求方式是更加安全的!

如果你覺得本文還不算太差,就點個贊吧!

總結

以上是生活随笔為你收集整理的OkHttp的详细使用方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。