OpenHarmony开发者论坛

标题: 如何使用JS封装网络请求 [打印本页]

作者: 一只杨    时间: 2023-9-13 11:49
标题: 如何使用JS封装网络请求

【问题描述】
OpenHarmony使用ArkTS语言开发,ArkTS语言不太熟悉,如何使用JS封装网络请求?
【运行环境】
硬件:rk3568;  ROM: 3.2 Release ;  API 9




作者: 星辰大海    时间: 2023-9-13 15:39
[md]OpenHarmony网络请求支持JS语言开发方式,可直接使用。具体使用参考如下文档:
[网络链接](https://gitee.com/openharmony/do ... pis/js-apis-http.md)

```
// 引入包名

import http from '@ohos.net.http';


// 每一个httpRequest对应一个HTTP请求任务,不可复用

let httpRequest = http.createHttp();

// 用于订阅HTTP响应头,此接口会比request请求先返回。可以根据业务需要订阅此消息

// 从API 8开始,使用on('headersReceive', Callback)替代on('headerReceive', AsyncCallback)。 8+

httpRequest.on('headersReceive', (header) => {

  console.info('header: ' + JSON.stringify(header));

});

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, // 可选,协议类型默认值由系统自动指定

    usingProxy: false, //可选,默认不使用网络代理,自API 10开始支持该属性

    caPath: "", // 可选,默认使用系统预设CA证书,自API 10开始支持该属性

  }, (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+

      // 当该请求使用完毕时,调用destroy方法主动销毁

      httpRequest.destroy();

    } else {

      console.info('error:' + JSON.stringify(err));

      // 取消订阅HTTP响应头事件

      httpRequest.off('headersReceive');

      // 当该请求使用完毕时,调用destroy方法主动销毁。

      httpRequest.destroy();

    }

  }

);
```

[/md]




欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/) Powered by Discuz! X3.5