鸿蒙Next中如何使用fetch进行网络请求
在鸿蒙Next开发中,我想使用fetch API进行网络请求,但不太清楚具体该如何实现。能否提供一段示例代码,展示如何发送GET/POST请求并处理响应?需要特别注意哪些鸿蒙特有的配置或权限声明?
2 回复
鸿蒙Next里用fetch?简单!先import,然后直接fetch(url),接着.then处理响应,.catch抓错误。记得用await更优雅,但别在UI线程阻塞哦~代码三行搞定,网络请求so easy!
更多关于鸿蒙Next中如何使用fetch进行网络请求的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在鸿蒙Next(HarmonyOS NEXT)中,你可以使用@ohos.net.http模块中的http类进行网络请求,类似于Web中的fetch。以下是详细步骤和代码示例:
步骤1:导入模块
在代码文件中导入http模块:
import http from '@ohos.net.http';
步骤2:创建HTTP请求对象
使用createHttp()方法创建一个HTTP请求对象:
let httpRequest = http.createHttp();
步骤3:发送GET请求示例
使用request()方法发送请求,并处理响应:
// 定义请求URL
let url = 'https://api.example.com/data';
// 发送GET请求
httpRequest.request(
url,
{
method: http.RequestMethod.GET, // 请求方法
header: { 'Content-Type': 'application/json' } // 请求头
},
(err, data) => {
if (err) {
console.error('请求失败:', err.code, err.message);
return;
}
// 解析响应数据
console.log('响应状态码:', data.responseCode);
console.log('响应结果:', data.result.toString());
}
);
步骤4:发送POST请求示例
对于POST请求,需在extraData中传递请求体:
let postUrl = 'https://api.example.com/submit';
httpRequest.request(
postUrl,
{
method: http.RequestMethod.POST,
header: { 'Content-Type': 'application/json' },
extraData: JSON.stringify({ key: 'value' }) // 请求体数据
},
(err, data) => {
if (err) {
console.error('POST请求失败:', err.message);
return;
}
console.log('POST响应:', data.result.toString());
}
);
注意事项:
- 权限配置:在
module.json5文件中添加网络权限:{ "module": { "requestPermissions": [ { "name": "ohos.permission.INTERNET" } ] } } - 错误处理:检查
err对象,处理网络异常或服务器错误。 - 异步操作:
request()是异步方法,避免在回调外直接使用响应数据。 - 释放资源:在页面销毁时调用
httpRequest.destroy()释放请求对象。
替代方案(如适用):
- 若开发Web类应用,可使用
@ohos.net.webSocket或XMLHttpRequest。 - 对于更复杂的需求(如文件上传),参考
@ohos.request上传下载API。
以上代码展示了鸿蒙Next中实现网络请求的基本方法,可根据实际需求调整参数和逻辑。

