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

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

3天內不再提示

鴻蒙OS開發實例:【工具類封裝-http請求】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-03-27 22:32 ? 次閱讀

import http from '@ohos.net.http';
import promptAction from '@ohos.promptAction';

封裝HTTP接口請求類,提供格式化的響應信息輸出功能。
使用 DevEco Studio 3.1.1 Release 及以上版本,API 版本為 api 9 及以上。

示例:

import { MyHttpUtil } from '../common/utils/MyHttpUtil';
 async function fetchWeatherData() {
 const request = await MyHttpUtil.request('https://api.oioweb.cn/api/weather/GetWeather', 'GET', {}, true);
 }
鴻蒙OS開發更多內容↓點擊HarmonyOSOpenHarmony技術
鴻蒙技術文檔開發知識更新庫gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md在這。或+mau123789學習,是v喔

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

// 定義日志標識符
  private static readonly LOG_TAG: string = "====MyHttpUtil";

  /**
   * 發起HTTP請求的方法封裝.
   * @param url API 地址,若不包含協議頭,則自動添加當前應用的主機域名。
   * @param method 請求方法,如 'GET', 'POST' 等。
   * @param params 當HTTP請求方法為GET、OPTIONS、DELETE、TRACE、CONNECT時,此參數用于傳遞查詢字符串;對于POST方法,這些數據會被作為請求體內容。
   * @param showErrorToast 若為 true,在接口業務錯誤時,向用戶顯示 toast 提示信息。
   * @returns 成功時返回接口響應數據,請求異常時返回 undefined。
   */
  public static async request(url: string, method: string, extraData: object, showErrorToast: boolean): Promise< any | undefined > {
    try {
      if (!url) {
        return undefined;
      }
      console.info(`${MyHttpUtil.LOG_TAG}: Request started with URL:`, url);

      let request = http.createHttp();
      let options = {
        method: method, //http.RequestMethod.GET 或 http.RequestMethod.POST
        header: {
          'Content-Type': 'application/json'
        },
        readTimeout: 50000, //讀取超時時間。單位為毫秒(ms),默認為60000ms。 設置為0表示不會出現超時情況。
        connectTimeout: 50000, //連接超時時間。單位為毫秒(ms),默認為60000ms。
        extraData: extraData,
      } as http.HttpRequestOptions;
      let result = await request.request(url, options);
      result = JSON.parse(JSON.stringify(result))

      console.info(MyHttpUtil.LOG_TAG, 'request end url:', url); //請求結束后
      console.info(MyHttpUtil.LOG_TAG, 'request method:', method);
      console.info(MyHttpUtil.LOG_TAG, 'request extraData:', JSON.stringify(extraData));
      // console.info(MyHttpUtil.LOG, 'request result', JSON.stringify(result, null, 2));
      console.info(MyHttpUtil.LOG_TAG, 'request result', JSON.stringify(result));
      if (result.responseCode == 200) {
        console.info(MyHttpUtil.LOG_TAG, 'request code 200 result', result.result.toString());
        console.info(MyHttpUtil.LOG_TAG, 'request code 200 result', JSON.stringify(JSON.parse(result.result.toString()), null, 2));
        // console.info(MyHttpUtil.LOG, 'request code 200 result',  JSON.parse(result.result.toString()));
      }

      //判斷業務異常時,彈出對應的toast
      if (showErrorToast) { //TODO 還需要追加自己業務的判斷
        promptAction.showToast({
          message: '這里打印接口業務的message錯誤信息,根據自己公司接口業務情況封裝。',
          duration: 2000,
          bottom: '375lpx'
        })
      }
      return result;
    } catch (error) {
      console.error(MyHttpUtil.LOG_TAG, 'request end url:', url);
      console.error(MyHttpUtil.LOG_TAG, 'request method:', method);
      console.error(MyHttpUtil.LOG_TAG, 'request extraData:', JSON.stringify(extraData));
      console.error(MyHttpUtil.LOG_TAG, 'request', JSON.stringify(error));
    } finally {
      return undefined
    }
  }
}
}

審核編輯 黃宇

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

    關注

    79

    文章

    1914

    瀏覽量

    29497
  • OpenHarmony
    +關注

    關注

    24

    文章

    3447

    瀏覽量

    15330
  • 鴻蒙OS
    +關注

    關注

    0

    文章

    190

    瀏覽量

    4304
收藏 人收藏

    評論

    相關推薦

    鴻蒙原生應用開發-網絡管理HTTP數據請求

    : \' + JSON.stringify(header)); }); httpRequest.request( // 填寫HTTP請求的URL地址,可以帶參數也可以不帶參數。URL地址需要開發者自定義。
    發表于 03-29 17:51

    鴻蒙OS崛起,鴻蒙應用開發工程師成市場新寵

    應用的形態也在發生著翻天覆地的變化。作為全球領先的移動操作系統和智能終端制造商,華為公司自主研發的鴻蒙OS應運而生,致力于構建一個統一的分布式操作系統,為各行各業的應用開發帶來全新的可能性。 一、
    發表于 04-29 17:32

    鴻蒙OS應用程序開發

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

    #HarmonyOS征文#—鴻蒙OS開發流程及DevEco Studio安裝

    鴻蒙OS的完整開發流程1. 注冊并實名認證華為開發者賬號鴻蒙官網:www.harmonyos.com注冊登錄華為賬號后,進行實名認證登錄之后
    發表于 07-22 11:43

    基于STM32封裝HTTP請求知識

    通過封裝http頭,向服務器發送get請求,通過get請求上傳數據,并獲取返回值
    發表于 08-05 06:01

    鴻蒙JS開發接口請求loading怎么解決?

    鴻蒙JS開發接口請求loading?
    發表于 05-10 10:24

    鴻蒙應用開發請求不到數據是為什么?

    鴻蒙應用開發請求不到數據
    發表于 06-15 11:04

    鴻蒙 OS 應用開發初體驗

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

    鴻蒙OS2.0手機開發者Beta版登場

    12 月 16 日,華為宣布正式推出鴻蒙 OS 的手機開發者 Beta 版,并正式面向個人/企業開發者公測鴻蒙 2.0,
    的頭像 發表于 12-16 14:39 ?2013次閱讀

    鴻蒙OS千呼萬喚始出來

    從2019年在華為開發者大會上公布鴻蒙OS開始,圍繞著鴻蒙OS的話題始終沒有停止過,而華為也堅持不懈地為
    的頭像 發表于 06-01 15:56 ?2373次閱讀

    HTTP請求方式有哪些

    相信大家在不管是學習、工作或者面試中,肯定會碰到或被問到?HTTP??相關的知識。今天我們來聊聊有哪些?HTTP?請求方式,以及區別吧! 小伙伴們寫過接口或者使用過網頁開發者模式的,肯
    的頭像 發表于 09-02 09:21 ?4350次閱讀

    【EsDA 應用】快速實現串口轉HTTP請求

    本文將基于EsDA開發套件快速實現將串口數據轉換為HTTP請求的應用開發,實現串口設備與網絡服務的互聯互通,提供便捷和高效的串口數據轉換功能。項目簡介
    的頭像 發表于 11-09 08:25 ?559次閱讀
    【EsDA 應用】快速實現串口轉<b class='flag-5'>HTTP</b><b class='flag-5'>請求</b>

    鴻蒙OS開發實例:【窺探網絡請求

    HarmonyOS 平臺中使用網絡請求,需要引入 "@ohos.net.http", 并且需要在 module.json5 文件中申請網絡權限, 即 “ohos.permission.INTERNET” 本篇文章將嘗試使用 @ohos.net.
    的頭像 發表于 04-01 16:11 ?298次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發</b><b class='flag-5'>實例</b>:【窺探網絡<b class='flag-5'>請求</b>】

    鴻蒙OS開發實戰:【網絡管理HTTP數據請求

    應用通過HTTP發起一個數據請求,支持常見的GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT方法。
    的頭像 發表于 04-01 16:31 ?331次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發</b>實戰:【網絡管理<b class='flag-5'>HTTP</b>數據<b class='flag-5'>請求</b>】

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

    鴻蒙上使用的Http網絡框架,里面包含純Java實現的HttpNet,類似okhttp使用,支持同步和異步兩種請求方式;還有鴻蒙版retrofit,和Android版Retrofit相
    的頭像 發表于 04-12 16:58 ?474次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發</b><b class='flag-5'>實例</b>:【HarmonyHttpClient】網絡框架
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>