【HarmonyOS NEXT 】应用开发:使用@ohos.net.http调用第三方接口

@ohos.net.http 这个模块提供了发送 HTTP 请求的功能,类似于其他平台上的 fetch 或 axios。

1、添加权限

确保在 config.json 文件中添加了网络访问权限(应该默认都会有,我这没手动加)

{
  "name": "com.example.myapplication",
  "applicableDevice": [
    {
      "deviceType": "phone",
      "appPermissions": [
        "ohos.permission.INTERNET"
      ]
    }
  ],
  ...
}
2、导入模块

在你的 JavaScript 文件中,需要导入 @ohos.net.http 模块:

import HttpClient from '@ohos.net.http';
3、创建 HTTP 客户端

创建一个 HttpClient 实例,并构建请求对象。

async function sendHttpRequest() {
  try {
    const client = new HttpClient();
    const request = new HttpClient.Request();
    
    request.setUrl('https://api.example.com/data');
    request.setMethod(HttpClient.RequestMethod.GET);
    
    // 设置请求头
    request.setHeader('Content-Type', 'application/json');
    
    // 发送请求
    const response = await client.sendRequest(request);
    
    if (response.getStatusCode() === 200) {
      const responseBody = await response.getContent();
      console.log('Response:', responseBody);
    } else {
      console.error('Error:', response.getStatusCode());
    }
    
  } catch (error) {
    console.error('An error occurred:', error);
  }
}
4、发送 POST 请求

如果你需要发送 POST 请求,可以按照以下方式修改上面的代码:

async function sendPostRequest() {
  try {
    const client = new HttpClient();
    const request = new HttpClient.Request();
    
    request.setUrl('https://api.example.com/data');
    request.setMethod(HttpClient.RequestMethod.POST);
    
    // 设置请求头
    request.setHeader('Content-Type', 'application/json');
    
    // 设置请求体
    const requestBody = JSON.stringify({ key: 'value' });
    request.setContent(requestBody);
    
    // 发送请求
    const response = await client.sendRequest(request);
    
    if (response.getStatusCode() === 200) {
      const responseBody = await response.getContent();
      console.log('Response:', responseBody);
    } else {
      console.error('Error:', response.getStatusCode());
    }
    
  } catch (error) {
    console.error('An error occurred:', error);
  }
}
5、运行代码

你可以调用 sendHttpRequest() 或 sendPostRequest() 函数来执行相应的请求。

sendHttpRequest();
// 或者
sendPostRequest();

备注:

  • 确保你的应用已连接到互联网。
  • 处理各种可能的 HTTP 错误码,并提供适当的用户反馈。
  • 如果 API 需要认证,记得设置正确的认证信息。

【1】官网文档

【2】官网样例

你可能感兴趣的:(HarmonyOS,harmonyos,.net,http)