在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

鴻蒙OS開發實例:【HarmonyHttpClient】網絡框架

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-04-12 16:58 ? 次閱讀

簡介

鴻蒙上使用的Http網絡框架,里面包含純Java實現的HttpNet,類似okhttp使用,支持同步和異步兩種請求方式;還有鴻蒙版retrofit,和Android版Retrofit相似的使用,解放雙手般優雅使用注解、自動解析json

很遺憾,目前沒能直接發布bintray,DevEco Studio上傳bintray,gradle安裝不通過,所以如果要使用,clone下來,引入module即可

HttpNet基本和進階使用方式,可以進行合適的封裝,簡化請求邏輯

鴻蒙開發文檔參考:[qr23.cn/AKFP8k]可以復制地址前往。

構建GET請求:和okhttp類似

RequestParams params = new RequestParams()
                .put("userName","oscer")
                .put("pwd","oschina");

Request request = new Request.Builder().encode("UTF-8")
                .method("GET")
                .timeout(13000)
                .url("http://www.oschina.net")
                .build();

構建POST請求:

//請求參數
RequestParams params = new RequestParams()
                .put("userName","oscer")
                .putFile("fileName","file")
                .put("pwd","oschina");
//請求對象
Request request = new Request.Builder()
                .encode("UTF-8")
                .method("POST")
                .params(params)
                .timeout(13000)
                .url("http://www.oschina.net")
                .build();

POST JSON 請求構建:

Request request = new Request.Builder()
                .encode("UTF-8")
                .method("POST")
                .content(new JsonContent("json")
                .timeout(13000)
                .url("http://www.oschina.net")
                .build();

執行請求:

//構建Http客戶端,這里可以進行全局static final
HttpNetClient client = new HttpNetClient();
client.setProxy("192.168.1.1",80);//您也可以開啟該客戶端全局代理
client.addInterceptor(new Interceptor() {
            /* 攔截器在執行請求前都會走到這一步,如果是同步的,就是當前線程,如果是異步,就是子線程
            * 因此可以在這里動態添加全局Cookie或其它Header之類的
            * 進階使用:如果要求對所有接口Form表單進行全局加密,也可以在這里執行
            */
            @Override
            public void intercept(Request request) {
                Log.e("請求攔截器當前線程: " + Thread.currentThread().getName() + "  --  " + request.url());

            }
        });
//執行異步請求
client.newCall(request)
                //如果采用上傳文件方式,可以在這里開啟上傳進度監控
                .intercept(new InterceptListener() {
                    @Override
                    public void onProgress(final int index, final long currentLength, final long totalLength) {
                        Log.e("當前進度", "  --  " + ((float) currentLength / totalLength) * 100);
                    }
                })
                .execute(new Callback() {
                    @Override
                    public void onResponse(Response response) {
                        String body = response.getBody();//getBody()和toStream()是互斥的
                        InputStream is = response.toStream();//如果采用下載,可以在這里監聽下載進度
                    }

                    @Override
                    public void onFailure(Exception e) {
                        Log.e("onFailure " + e.getMessage());
                    }
                });

// 也可以在子線程中執行同步請求,如果有幾個接口需要進行順序請求,此方法最佳
try {
     Response response = client.newCall(request).execute();
     String body = response.getBody();
}catch (Exception e){
      e.printStackTrace();
}

Retrofit使用方式,底層網絡實現基于前面的 HttpNetClient,基于運行時注解添加請求配置,UI切換使用鴻蒙EventHandler

// 構建請求java接口,采用動態代理+注解實現,服務器返回什么,Call< 服務器返回json對應的Java bean >即可
public interface LoginService {

    //普通POST,方法名添加請求方法注解POST、GET、DELETE、Header等,方法參數添加Form表單注解
    @Headers({"Cookie:cid=adcdefg;"})//靜態Header
    @POST("api/users/login")
    Call

搜狗高速瀏覽器截圖20240326151344.png

執行請求

public static final String API = "http://www.oschina.net/";
public static Retrofit retrofit = new Retrofit();
retrofit.registerApi(API);//注冊api

//進階使用,假設服務器返回來的json內容是aes加密的,那么可以添加轉化器,攔截響應,aes解密后再返回,此方法一定在子線程執行,直接執行耗時操作
retrofit.setConverterFactory(new ConverterFactory() {
            @Override
            public void convert(com.haibin.retrofit.Response response) {
                response.setBodyString("{json}");//攔截響應數據,修改內容,如aes解密后再返回
                Log.e("響應轉換器當前線程: " + Thread.currentThread().getName());
            }
        });

//執行異步請求,異步請求可以直接在UI線程執行
retrofit.from(LoginService.class)
         .login("xxx@qq.com", "123456", 2, 2);
         .withHeaders(Headers...)//動態添加某些Header
         .execute(new Callback

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 框架
    +關注

    關注

    0

    文章

    403

    瀏覽量

    17489
  • 鴻蒙OS
    +關注

    關注

    0

    文章

    188

    瀏覽量

    4396
收藏 人收藏

    評論

    相關推薦

    初識鴻蒙OS

    1.0版本的設計和開發;2018年,華為公司完成了鴻蒙內核2.0版本的設計和研發;2019年,華為的智慧屏率先搭載鴻蒙操作系統;2020年9月11日,華為正式發布鴻蒙操作系統,并舉行
    發表于 09-10 15:28

    鴻蒙OS應用程序開發

    這份學習文檔主要是帶領大家在鴻蒙OS上學習開發一個應用程序,主要知識點如下:1、U-Boot引導文件燒寫方式;2、內核鏡像燒寫方式;3、鏡像運行。
    發表于 09-11 14:39

    鴻蒙os系統是什么意思 鴻蒙os系統有什么作用

    毫秒級。鴻蒙OS實現模塊化耦合,對應不同設備可彈性部署,鴻蒙OS有三層架構,第一層是內核,第二層是基礎服務,第三層是程序框架,可用于手機、平
    發表于 12-17 11:34

    鴻蒙應用開發的JS UI框架如何實現高德地圖的訪問?

    鴻蒙應用,現在分為Java UI框架和Ark UI框架,其中JS UI開發框架Ark UI框架
    發表于 04-28 11:44

    鴻蒙 OS 應用開發初體驗

    的操作系統平臺和開發框架。HarmonyOS 的目標是實現跨設備的無縫協同和高性能。 DevEco Studio 對標 Android Studio,開發鴻蒙
    發表于 11-02 19:38

    嵌入式系統設計與實例開發—ARM與uC/OS-Ⅱ

    嵌入式系統設計與實例開發 ——ARM與uC/OS-Ⅱ
    發表于 11-08 17:32 ?0次下載

    鴻蒙OS初心是面向IoT,IoT系統碎片化才是鴻蒙需解決的關鍵問題

    副總裁楊海松說,“既然我們已經做出了開發者Beta版,這說明我們已經準備好了。” 此次華為主要介紹了鴻蒙OS 2.0會向開發者提供的三個核心能力:分布式的編程
    的頭像 發表于 12-16 14:42 ?2235次閱讀

    華為鴻蒙OS 2.0帶來哪些智慧體驗?

    華為已經定于12月16日在北京發布鴻蒙OS 2.0手機開發者Beta版本。這不僅是手機鴻蒙OS的首次亮相,同時也意味著手機
    的頭像 發表于 12-15 15:10 ?2084次閱讀

    鴻蒙OS 2.0手機開發者Beta版發布會在京舉辦

    三個月前,鴻蒙OS 2.0正式在華為開發者大會2020亮相。12月16日,鴻蒙OS 2.0手機開發
    的頭像 發表于 12-16 09:29 ?1.9w次閱讀

    華為正式推出鴻蒙OS的手機開發者Beta版

    12月16日上午消息,華為今日宣布正式推出鴻蒙OS的手機開發者Beta版,華為消費者業務軟件部總裁王成錄表示,今年已有美的、九陽、老板電器、海雀科技搭載鴻蒙
    的頭像 發表于 12-16 10:37 ?2622次閱讀

    華為發布鴻蒙OS Beta版

    昨天華為發布鴻蒙OS Beta版了?鴻蒙系統一直在按照既有步伐前進,現在華為發布鴻蒙OS Beta版,而且一些生態
    的頭像 發表于 12-17 08:41 ?2879次閱讀

    鴻蒙OS與Lite OS的區別是什么

    鴻蒙OS鴻蒙OS面向未來、面向全場景、分布式。在單設備系統能力基礎上,鴻蒙OS提出了基于同一套系
    的頭像 發表于 12-24 12:40 ?5010次閱讀

    鴻蒙os怎么升級

    6月2日,華為正式發布了鴻蒙armonyOS 2系統,那么鴻蒙os如何升級?現將鴻蒙os升級方式告知如下。
    的頭像 發表于 06-08 16:26 ?2733次閱讀

    鴻蒙os2.0系統官網

    的全新芯片,更多個性化操作的推出會讓用戶們更加舒適的使用鴻蒙2.0系統。 鴻蒙2.0系統介紹:DFX 鴻蒙os2.0系統官網下載,為不同的硬件架構和資源提供了基于組件和可定制的DFX
    的頭像 發表于 06-21 20:32 ?1w次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>os</b>2.0系統官網

    華為開發者大會2021鴻蒙os在哪場

    華為開發者大會2021將在10月22日-24日舉辦,地點為東莞松山湖,鴻蒙os 3.0或將與我們見面,那么華為開發者大會2021鴻蒙
    的頭像 發表于 10-22 15:24 ?1907次閱讀
    主站蜘蛛池模板: 一级高清| 国产午夜精品理论片在线 | 久久精品国产精品亚洲人人| 四虎a级欧美在线观看| 国内一级特黄女人精品片| 欧美adc影院| 久久国产免费观看精品1| 免费网站色| 全免费一级毛片在线播放| 欧美一卡2卡三卡4卡5卡免费观看| 日本怡红| 深夜视频在线观看免费| 色a4yy综合私人| 免费香蕉视频国产在线看| 殴美一级| 一级做a爱片久久毛片| 国产一级特黄aa大片免费| 国产亚洲精品久久久极品美女| 怡红院网址| 丁香婷五月| 38pao强力打造永久免费高清视频| 色综合视频在线观看| 亚洲午夜大片| 全是肉的高h短篇列车| 快色视频在线观看| 国产毛片哪里有| 天天摸天天添人人澡| 亚洲午夜精品久久久久久人妖| 在线观看国产一级强片| 免费人成在线| 成人免费久久精品国产片久久影院| 天天躁夜夜躁| 天天拍夜夜爽| 伊人久久大香线焦在观看| www.四虎影| 欧美区亚洲区| 国产毛片久久久久久国产毛片| 日本xxwwwxxxx网站| 免费黄色一级| 在线视频免费视频网站| 欧美三级欧美一级|