harmonyos network

37 阅读2分钟

本模块提供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.下载 包管理工具

developer.harmonyos.com/cn/develop/…

查看是否安装成功

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!')
//   })