@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 需要认证,记得设置正确的认证信息。