鸿蒙Next中如何为HTTP POST请求添加请求体

在鸿蒙Next中,我想通过HTTP POST请求发送数据,但不知道如何正确添加请求体。具体应该使用哪个API?请求体的格式应该如何构建,比如JSON或表单数据?有没有代码示例可以参考?

2 回复

在鸿蒙Next里,给HTTP POST加请求体就像给快递塞东西一样简单。用fetch时,在RequestInit里设置body字段,比如body: JSON.stringify({name: "张三"}),再配上headers: {'Content-Type': 'application/json'},搞定!就像给包裹贴好标签再寄出~

更多关于鸿蒙Next中如何为HTTP POST请求添加请求体的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在鸿蒙Next(HarmonyOS NEXT)中,为HTTP POST请求添加请求体需要使用@ohos.net.http模块。以下是具体步骤和示例代码:

步骤

  1. 导入HTTP模块:使用@ohos.net.http创建HTTP请求。
  2. 创建请求体:将数据转换为字符串(如JSON格式)。
  3. 设置请求头和请求体:通过http.RequestOptions配置。
  4. 发送请求:调用http.createHttp().request()方法。

示例代码

import http from '@ohos.net.http';
import { BusinessError } from '@ohos.base';

// 定义请求数据
let postData = {
  key1: 'value1',
  key2: 'value2'
};

// 创建HTTP请求
let httpRequest = http.createHttp();

// 配置请求选项
let options: http.HttpRequestOptions = {
  method: http.RequestMethod.POST, // 设置POST方法
  header: {
    'Content-Type': 'application/json' // 设置请求头为JSON
  },
  extraData: JSON.stringify(postData) // 将数据转换为JSON字符串作为请求体
};

// 发送请求
httpRequest.request(
  'https://example.com/api/post', // 请求URL
  options,
  (err: BusinessError, data: http.HttpResponse) => {
    if (err) {
      console.error(`Request failed, code: ${err.code}, message: ${err.message}`);
      return;
    }
    console.log('Response received:', data.result);
  }
);

说明

  • 请求体格式:使用extraData字段设置请求体,支持字符串类型。对于JSON数据,需先用JSON.stringify()转换。
  • 请求头:根据数据格式设置Content-Type,例如JSON用'application/json'
  • 错误处理:通过回调函数检查err对象处理网络或服务器错误。

此方法适用于鸿蒙Next的API 9及以上版本。确保在module.json5中声明网络权限:

{
  "module": {
    "requestPermissions": [
      {
        "name": "ohos.permission.INTERNET"
      }
    ]
  }
}
回到顶部