安卓OKhttp請求封裝

来源:http://www.cnblogs.com/wuyoucao/archive/2017/05/06/6817410.html
-Advertisement-
Play Games

目前安卓開發中使用的網路工具為OKhttp,但是okhttp的使用還不是很方便,在okhttp的基礎上再對請求進行封裝會極大的方便網路調用。 下麵直接上代碼。 請求封裝 上面對okhttp的put請求進行了簡單封裝,四個參數分別是 1.請求地址 2.請求頭,以map的形式傳入,如不需要可傳入null ...


  目前安卓開發中使用的網路工具為OKhttp,但是okhttp的使用還不是很方便,在okhttp的基礎上再對請求進行封裝會極大的方便網路調用。

  下麵直接上代碼。

請求封裝

public class HttpUtil {
    public static void sendOKHttpRequest(String address, Map<String,String> head,Map<String,String> body,okhttp3.Callback callback){
        OkHttpClient client=new OkHttpClient();
        Request.Builder builder=new Request.Builder().url(address);
        if(head!=null&&head.size()>0){
            for (Map.Entry<String, String> entry : head.entrySet()) {
                builder.addHeader(entry.getKey(),entry.getValue());
            }
        }
        FormBody.Builder formBody = new FormBody.Builder();
        if(body!=null&&body.size()>0){
            for (Map.Entry<String, String> entry : head.entrySet()) {
                formBody.add(entry.getKey(),entry.getValue());
            }
        }
        RequestBody requestBody = formBody.build();
        Request request=builder.post(requestBody).build();
        client.newCall(request).enqueue(callback);
    }
}

上面對okhttp的put請求進行了簡單封裝,四個參數分別是

  1.請求地址

  2.請求頭,以map的形式傳入,如不需要可傳入null

  3.攜帶參數,同樣以map的形式傳入,如無參數傳入null

  4.回調函數

代碼中調用

  

     Map<String,String> body=new HashMap<String, String>();      body.put("userName",loginName);      body.put("password",password);

    HttpUtil.sendOKHttpRequest(getString(R.string.ip)+"/xxx/Login",null,body,new Callback(){ @Override public void onFailure(Call call, IOException e) { //請求失敗 } @Override public void onResponse(Call call, Response response) throws IOException { final String responseText=response.body().string(); //請求成功 } });

註意Callback為OKhttp下的,引入時需註意。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • ECMAScript語言類型對應於使用ECMAScript語言的ECMAScript程式員直接操作的值。ECMAScript語言類型有以下幾種Undefined,Null,Boolean,String,Symbol,Number和Object。ECMAScript語言值是以ECMAScript語言類 ...
  • html頁面上的元素都可以看成是框組成的,框通過三種定位機制排列在一起就過程了我們看到的頁面.而框就是盒模型. 盒模型 1.頁面上的每個元素可以看成一個矩形框,每個框由元素的內容,內邊距,邊框和外邊距組成。 2.如果在元素上添加背景,則背景是邊框, 內邊距和內容組成的區域. 3.在css中width ...
  • 背景簡介 使用 時,預設的地址並不美觀,以 進行分割,例如: 。 為了訪問地址能像正常的 一樣,例如: 。 按照官網介紹,使用 history 模式。但是卻產生了問題。 問題 因為我們的應用是單頁客戶端應用,當用戶在瀏覽器直接訪問 時,刷新頁面的時候,會返回404錯誤。 問題原因 服務端URL匹配不 ...
  • 正則表達式:"^[\u4e00-\u9fa5]{0,}$" 、 "/^[\u4E00-\u9FA5]{1,5}$/" 的含義: 在JS里,\uXXXX 是轉義字元,"XXXX"對應的是16進位Unicode編碼; ^ 匹配一行的開始。例如正則表達式^123能夠匹配字元串"12345"的開始,但是不能 ...
  • 最近準備換工作,需要更新一下技能樹。為做到有的放矢,想對招聘方的要求做個統計。正好之前瞭解過nodejs,所以做了個爬蟲搜索數據。 具體步驟: 1. 先用fiddler分析請求需要的header和body。 2. 再用superagent構建上述數據發送客戶端請求。 3. 最後對返回的數據使用che ...
  • 1A課程 概述 課程1A主要講解了Android UI的三種基本控制項:TextView、ImageView以及Button。筆記的主體內容主要根據課程內容的講解順序來組織,此外我對一些個人比較感興趣的內容作了一些擴展的說明。希望我的分享能對大家有所幫助。 TextView 設置TextView中的字 ...
  • 原作者,講解 Mockito 2 怎樣用於Kotlin final 類 的測試。 ...
  • 本文地址 原文地址--微信 點擊關註 微信公眾號 手機眾生相 手機大家都不陌生,不管你拿的是高逼格的蘋果手機,還是親民的安卓手機,甚至你固執地懷舊拿著諾基亞的手機,都無損於你低頭一族的一員。地鐵里,商場中,工作時,回家中,大家也都是埋著頭,神情專註地看著自己的手機,或是來把《王者榮耀》殺個頭破血流, ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...