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的详细使用方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spring security导致登录后
- 下一篇: java swing游戏源码-宇宙战争游