HarmonyOS进行HTTP请求

举报
dragon-w 发表于 2024/07/12 09:09:07 2024/07/12
【摘要】 ​在HarmonyOS开发中,我们如果有基于http协议调用后端api,来操作数据或者和后端进行数据提交的交互,就可以通过导入http库来实现基于http的数据请求。和使用Web组件一样,使用网络资源我们首先要开启网络访问权限,在module.json5文件中添加:{ "module" : { "requestPermissions":[ { ...

在HarmonyOS开发中,我们如果有基于http协议调用后端api,来操作数据或者和后端进行数据提交的交互,就可以通过导入http库来实现基于http的数据请求。

和使用Web组件一样,使用网络资源我们首先要开启网络访问权限,在module.json5文件中添加:

{
    "module" : {
        "requestPermissions":[
           {
             "name": "ohos.permission.INTERNET"
           }
        ]
    }
}

具体的编码步骤是:导包==》创建httpRequest对象==》订阅请求头(可选)==》发起http请求==》处理响应结果。

//1.导入http模块
import http from '@ohos.net.http';

//2.创建httpRequest对象
let httpRequest = http.createHttp();

//3.订阅请求头(可选)
httpRequest.on('headersReceive', (header) => {
    console.info('header: ' + JSON.stringify(header));
});

//4.发起http请求
let url = "https://EXAMPLE_URL";
let promise = httpRequest.request(
  // 请求url地址
  url,
  {
    // 请求方式
    method: http.RequestMethod.POST,
    // 请求的额外数据。
    extraData: {
      "param1": "value1",
      "param2": "value2",
    },
    // 可选,默认为60s
    connectTimeout: 60000,
    // 可选,默认为60s
    readTimeout: 60000,
    // 开发者根据自身业务需要添加header字段
    header: {
      'Content-Type': 'application/json'
    }
  });


//5.处理响应结果
promise.then((data) => { 
  if (data.responseCode === http.ResponseCode.OK) {
    console.info('Result:' + data.result);
    console.info('code:' + data.responseCode);
  }
}).catch((err) => {
  console.info('error:' + JSON.stringify(err));
});

Done!!!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。