前言,前面几篇一直在说基础组件和容器组件的使用,这些都是本地的数据处理,接下来说一下如何和服务器进行数据交互,那就是如何使用网络请求数据。
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@Componentstruct 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(); } } ); }) } }}