不得不承认,年龄越大性格就越简单,更喜欢安静,不喜欢去了解别人,也不想被了解,只想静静的做自己喜欢的事……

目录

一,场景介绍

二,接口说明

三,http请求使用

一,场景介绍

应用通过HTTP发起一个数据请求,支持常见的GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT方法。

二,接口说明

HTTP数据请求功能主要由http模块提供。

使用该功能需要申请ohos.permission.INTERNET权限。

接口名描述createHttp()创建一个http请求。request()根据URL地址,发起HTTP网络请求。requestInStream()10+根据URL地址,发起HTTP网络请求并返回流式响应destroy()中断请求任务。on(type: ‘headersReceive’)订阅HTTP Response Header 事件。off(type: ‘headersReceive’)取消订阅HTTP Response Header 事件。once(‘headersReceive’)8+订阅HTTP Response Header 事件,但是只触发一次。on(‘dataReceive’)10+订阅HTTP流式响应数据接收事件。off(‘dataReceive’)10+取消订阅HTTP流式响应数据接收事件。on(‘dataEnd’)10+订阅HTTP流式响应数据接收完毕事件。off(‘dataEnd’)10+取消订阅HTTP流式响应数据接收完毕事件。on(‘dataReceiveProgress’)10+订阅HTTP流式响应数据接收进度事件。off(‘dataReceiveProgress’)10+取消订阅HTTP流式响应数据接收进度事件。

三,http请求使用

使用步骤为:

从@ohos.net.http.d.ts中导入http命名空间。调用createHttp()方法,创建一个HttpRequest对象。调用该对象的on()方法,可以根据业务需要订阅HTTP响应头事件、HTTP流式响应数据接收事件、HTTP流式响应数据接收进度事件和HTTP流式响应数据接收完毕事件。调用该对象的requestInStream()方法,传入http请求的url地址和可选参数,发起网络请求。按照实际业务需要,可以解析返回的响应码。调用该对象的off()方法,取消订阅相应事件。当该请求使用完毕时,调用destroy()方法主动销毁。

简单的演示(只是简单演示,不作为项目使用)

//1.从@ohos.net.http.d.ts中导入http命名空间。

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

export default class HttpClient {

private request :http.HttpRequest | null = null;

/**

* 2.创建HttpRequest

* */

createRequest(){

this.request =http.createHttp()

}

/*

* 3.用于订阅HTTP响应头,此接口会比request请求先返回。

* */

registerOn(){

this.request.on("headersReceive",(event)=>{

console.info("headersReceive--->",event)

})

}

/**

* 4,调用该对象的request()方法,传入http请求的url地址和可选参数,发起网络请求

* */

requestMethod(url:string,options: http.HttpRequestOptions){

this.request.request(url,options,(err,data)=>{

//5.解析请求结果

if(err){

//请求失败

}else {

//请求成功

//返回码

data.responseCode

//返回结果

data.result

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

this.request.off('headersReceive');

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

this.request.destroy();

}

})

}

/***

*

* 创建请求Options

* */

createRequestOptions():http.HttpRequestOptions{

let options:http.HttpRequestOptions={}

//请求方式

options.method=http.RequestMethod.GET

// 当使用POST请求时此字段用于传递内容

options.extraData="extraData"

// 可选,指定返回数据的类型

options.expectDataType=http.HttpDataType.STRING

// 可选,默认为true

options.usingCache=true

// 可选,默认为1

options.priority=1

//开发者根据自身业务需要添加header字段

options.header=[{

'Content-Type': 'application/json'

}]

// 可选,默认为60000ms

options.readTimeout=60000

// 可选,默认为60000ms

options.connectTimeout=60000

// 可选,协议类型默认值由系统自动指定

options.usingProtocol=http.HttpProtocol.HTTP1_1

return options

}

}

调用者:

import HttpClient from './HttpTest'

export default class HttpUse{

private request:HttpClient | null = null

requestUrl(){

this.request = new HttpClient()

this.request.createRequest()

this.request.registerOn()

this.request.requestMethod('https://www.baidu.com',this.request.createRequestOptions())

}

}

注意:

1,需要添加网络权限

2,使用时尽量

①在work使用

②taskpool使用

③使用promise异步

防止阻塞主线程

参考链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: