本模块提供HTTP数据请求能力。应用可以通过HTTP发起一个数据请求,支持常见的GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT方法。
import http from '@ohos.net.http';
导入http 包
// 每一个httpRequest对应一个HTTP请求任务,不可复用
let httpRequest = http.createHttp();
详情见官网:
developer.harmonyos.com/cn/docs/doc…
httpRequest.request(
// 填写HTTP请求的URL地址,可以带参数也可以不带参数。URL地址需要开发者自定义。请求的参数可以在extraData中指定
"EXAMPLE_URL",
{
method: http.RequestMethod.POST, // 可选,默认为http.RequestMethod.GET
// 开发者根据自身业务需要添加header字段
header: {
'Content-Type': 'application/json'
},
// 当使用POST请求时此字段用于传递内容
extraData: {
"data": "data to send",
},
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) {
// data.result为HTTP响应内容,可根据业务需要进行解析
console.info('Result:' + JSON.stringify(data.result));
console.info('code:' + JSON.stringify(data.responseCode));
// data.header为HTTP响应头,可根据业务需要进行解析
console.info('header:' + JSON.stringify(data.header));
console.info('cookies:' + JSON.stringify(data.cookies)); // 8+
// 取消订阅HTTP响应头事件
httpRequest.off('headersReceive');
// 当该请求使用完毕时,调用destroy方法主动销毁
httpRequest.destroy();
} else {
console.info('error:' + JSON.stringify(err));
// 取消订阅HTTP响应头事件
httpRequest.off('headersReceive');
// 当该请求使用完毕时,调用destroy方法主动销毁。
httpRequest.destroy();
}
}
);
使用Promise方式作为异步方法。
Puthttp() {
let res = httpretuest.request('https://www.baidu.com', {
header: { 'Content-Type': 'application/json' },
connectTimeout: 60000,
readTimeout: 60000,
})
// console.log(JSON.stringify(res), 'res>>>')
res.then(data => {
console.log('success', JSON.stringify(data))
})
res.catch((error) => {
console.log('error', error)
})
}
安装第三方open harmonyos npm 包
官网
repo.harmonyos.com/#/cn/help/o…
1.下载 包管理工具
查看是否安装成功
ohpm -v
安装第三方axios
npm install @ohos/axios –save
import axios from "@ohos/axios";
import axios from '@ohos/axios'
import defaultAppManager from '@ohos.bundle.defaultAppManager'
import hilog from '@ohos.hilog'
const url: string = ''
const inner = axios.create({
url,
timeout: 500,
})
axios.interceptors.request.use((condig: any) => {
console.log('请求前做什么》', condig);
return condig;
})
export default inner
// axios({
// method: "post"undefined
// url: urlundefined
// data:{
// catalogName: "doc-references"undefined
// language: "cn"undefined
// objectId: "js-apis-net-http-0000001168304341"undefined
// }
// })
// .then(res => {
// console.info('post result:' + JSON.stringify(res.data.value.breadUrl))
// })
// .catch(error => {
// console.info('post error!')
// })