前言,前面几篇一直在说基础组件和容器组件的使用,这些都是本地的数据处理,接下来说一下如何和服务器进行数据交互,那就是如何使用网络请求数据。
HTTP数据请求:通过HTTP发起一个网络请求,支持GET、POST、PUT等方法。今天先说一下GET方法的使用,因为这个在浏览器也可以立马得到验证。
1、先加入网络权限。从应用权限列表中看出该网络权限是system_grant授权方式,所以不需要用户手动同意。
在module.json5文件中添加权限
由于这个权限授权方式是system_grant,所以写法就很简单。
如果是user_grant的话,这里就需要多一些标签字段配置项。
"requestPermissions": [
{
"name": "ohos.permission.INTERNET"
}
]
2、在文件第一行记得导入http命名空间(才能顺利调用),然后使用createHttp方法得到一个HttpRequest对象,然后调用request方法,在里面传入请求api地址和参数,最后请求使用完后记得使用destroy()方法主动销毁。
import http from '@ohos.net.http';
@Entry
@Component
struct HttpTest {
build(){
Column() {
Button('网络请求').onClick(() => {
let httpRequest = http.createHttp();
httpRequest.request(
// 填写HTTP请求的URL地址:鸿洋大神搭建的免费api接口
"https://wanandroid.com/article/list/0/json",
{
method: http.RequestMethod.GET,
header: {
'Content-Type': 'application/json'
},
extraData: {
"author": "鸿洋",//传递的参数
},
expectDataType: http.HttpDataType.STRING, // 可选,指定返回数据的类型
usingCache: true, // 可选,默认为true
priority: 1, // 可选,默认为1
connectTimeout: 60000, // 可选,默认为60000ms
readTimeout: 60000, // 可选,默认为60000ms
usingProtocol: http.HttpProtocol.HTTP1_1, // 可选,协议类型默认值由系统自动指定
}, (err, data) => {
if (!err) {
console.log('李乾乾'+data.result.toString())
} else {
console.info('error:' + JSON.stringify(err));
// 当该请求使用完毕时,调用destroy方法主动销毁
httpRequest.destroy();
}
}
);
})
}
}
}