diff --git a/zh-cn/application-dev/reference/apis/Readme-CN.md b/zh-cn/application-dev/reference/apis/Readme-CN.md index 575c006baa4a6393ab491448679656177a6435e0..5edd49f2abb981dea8c044c50215136c8f40b1d1 100755 --- a/zh-cn/application-dev/reference/apis/Readme-CN.md +++ b/zh-cn/application-dev/reference/apis/Readme-CN.md @@ -182,7 +182,6 @@ - [@ohos.net.http (数据请求)](js-apis-http.md) - [@ohos.net.sharing (网络共享管理)](js-apis-net-sharing.md) - [@ohos.net.socket (Socket连接)](js-apis-socket.md) - - [@ohos.net.tlsSocket (TLSSocket连接)](js-apis-tlsSocket.md) - [@ohos.net.webSocket (WebSocket连接)](js-apis-webSocket.md) - [@ohos.request (上传下载)](js-apis-request.md) diff --git a/zh-cn/application-dev/reference/apis/js-apis-http.md b/zh-cn/application-dev/reference/apis/js-apis-http.md index e09a76d0f65f51eb5b7d21f44d7fb2e049928602..5c876cb18906e44eb81a9ee75f917dad130536da 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-http.md +++ b/zh-cn/application-dev/reference/apis/js-apis-http.md @@ -2,7 +2,7 @@ 本模块提供HTTP数据请求能力。应用可以通过HTTP发起一个数据请求,支持常见的GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT方法。 ->**说明:** +>**说明:** > >本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 > @@ -38,8 +38,12 @@ httpRequest.request( 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响应内容,可根据业务需要进行解析 @@ -78,7 +82,6 @@ import http from '@ohos.net.http'; let httpRequest = http.createHttp(); ``` - ## HttpRequest HTTP请求任务。在调用HttpRequest的方法前,需要先通过[createHttp\(\)](#httpcreatehttp)创建一个任务。 @@ -158,7 +161,6 @@ httpRequest.request("EXAMPLE_URL", }); ``` - ### request request\(url: string, options? : HttpRequestOptions\): Promise @@ -226,7 +228,7 @@ on\(type: 'headerReceive', callback: AsyncCallback\): void 订阅HTTP Response Header 事件。 ->![](public_sys-resources/icon-note.gif) **说明:** +>![](public_sys-resources/icon-note.gif) **说明:** >此接口已废弃,建议使用[on\('headersReceive'\)8+](#onheadersreceive8)替代。 **系统能力**:SystemCapability.Communication.NetStack @@ -250,14 +252,13 @@ httpRequest.on('headerReceive', (err, data) => { }); ``` - ### off\('headerReceive'\) off\(type: 'headerReceive', callback?: AsyncCallback\): void 取消订阅HTTP Response Header 事件。 ->![](public_sys-resources/icon-note.gif) **说明:** +>![](public_sys-resources/icon-note.gif) **说明:** > >1. 此接口已废弃,建议使用[off\('headersReceive'\)8+](#offheadersreceive8)替代。 > @@ -301,14 +302,13 @@ httpRequest.on('headersReceive', (header) => { }); ``` - ### off\('headersReceive'\)8+ off\(type: 'headersReceive', callback?: Callback\): void 取消订阅HTTP Response Header 事件。 ->![](public_sys-resources/icon-note.gif) **说明:** +>![](public_sys-resources/icon-note.gif) **说明:** >可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。 **系统能力**:SystemCapability.Communication.NetStack @@ -359,9 +359,13 @@ httpRequest.once('headersReceive', (header) => { | -------------- | --------------------------------------------- | ---- | ------------------------------------------------------------ | | method | [RequestMethod](#requestmethod) | 否 | 请求方式。 | | extraData | string \| Object \| ArrayBuffer6+ | 否 | 发送请求的额外数据。
- 当HTTP请求为POST、PUT等方法时,此字段为HTTP请求的content。
- 当HTTP请求为GET、OPTIONS、DELETE、TRACE、CONNECT等方法时,此字段为HTTP请求的参数补充,参数内容会拼接到URL中进行发送。6+
- 开发者传入string对象,开发者需要自行编码,将编码后的string传入。6+ | +| expectDataType9+ | [HttpDataType](#httpdatatype9) | 否 | 指定返回数据的类型。如果设置了此参数,系统将优先返回指定的类型。 | +| usingCache9+ | boolean | 否 | 是否使用缓存,默认为true。 | +| priority9+ | number | 否 | 优先级,范围\[1,1000],默认是1。 | | header | Object | 否 | HTTP请求头字段。默认{'Content-Type': 'application/json'}。 | | readTimeout | number | 否 | 读取超时时间。单位为毫秒(ms),默认为60000ms。 | | connectTimeout | number | 否 | 连接超时时间。单位为毫秒(ms),默认为60000ms。 | +| usingProtocol9+ | [HttpProtocol](#httpprotocol9) | 否 | 使用协议。默认值由系统自动指定。 | ## RequestMethod @@ -433,10 +437,149 @@ request方法回调函数的返回值类型。 | 参数名 | 类型 | 必填 | 说明 | | -------------------- | -------------------------------------------- | ---- | ------------------------------------------------------------ | | result | string \| Object \| ArrayBuffer6+ | 是 | HTTP请求根据响应头中Content-type类型返回对应的响应格式内容:
- application/json:返回JSON格式的字符串,如需HTTP响应具体内容,需开发者自行解析
- application/octet-stream:ArrayBuffer
- 其他:string | +| resultType9+ | [HttpDataType](#httpdatatype9) | 是 | 返回值类型。 | | responseCode | [ResponseCode](#responsecode) \| number | 是 | 回调函数执行成功时,此字段为[ResponseCode](#responsecode)。若执行失败,错误码将会从AsyncCallback中的err字段返回。错误码参考[Response错误码](#response常用错误码)。 | | header | Object | 是 | 发起HTTP请求返回来的响应头。当前返回的是JSON格式字符串,如需具体字段内容,需开发者自行解析。常见字段及解析方式如下:
- Content-Type:header['Content-Type'];
- Status-Line:header['Status-Line'];
- Date:header.Date/header['Date'];
- Server:header.Server/header['Server']; | | cookies8+ | Array\ | 是 | 服务器返回的 cookies。 | +## http.createHttpResponseCache9+ + +createHttpResponseCache(cacheSize?: number): HttpResponseCache + +创建一个默认的对象来存储HTTP访问请求的响应。 + +**系统能力**:SystemCapability.Communication.NetStack + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | --------------------------------------- | ---- | ---------- | +| cacheSize | number | 否 | 缓存大小最大为10\*1024\*1024(10MB),默认最大。 | + +**返回值:** + +| 类型 | 说明 | +| :---------- | :----------------------------------------------------------- | +| [HttpResponseCache](#httpresponsecache9) | 返回一个存储HTTP访问请求响应的对象。 | + +**示例:** + +```js +import http from '@ohos.net.http'; +let httpResponseCache = http.createHttpResponseCache(); +``` + +## HttpResponseCache9+ + +存储HTTP访问请求响应的对象。 + +### flush9+ + +flush(callback: AsyncCallback\): void + +将缓存中的数据写入文件系统,以便在下一个HTTP请求中访问所有缓存数据,使用callback方式作为异步方法。 + +**系统能力**:SystemCapability.Communication.NetStack + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | --------------------------------------- | ---- | ---------- | +| callback | AsyncCallback\ | 是 | 回调函数返回写入结果。 | + +**示例:** + +```js +import http from '@ohos.net.http'; +let httpResponseCache = http.createHttpResponseCache(); +httpResponseCache.flush(err => { + if (err) { + console.log('flush fail'); + return; + } + console.log('flush success'); +}); +``` + +### flush9+ + +flush(): Promise\ + +将缓存中的数据写入文件系统,以便在下一个HTTP请求中访问所有缓存数据,使用Promise方式作为异步方法。 + +**系统能力**:SystemCapability.Communication.NetStack + +**参数:** + +| 类型 | 说明 | +| --------------------------------- | ------------------------------------- | +| Promise\> | 以Promise形式返回写入结果。 | + +**示例:** + +```js +import http from '@ohos.net.http'; +let httpResponseCache = http.createHttpResponseCache(); +http.flush().then(() => { + console.log('flush success'); +}).catch(err => { + console.log('flush fail'); +}); +``` + +### delete9+ + +delete(callback: AsyncCallback\): void + +禁用缓存并删除其中的数据,使用callback方式作为异步方法。 + +**系统能力**:SystemCapability.Communication.NetStack + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | --------------------------------------- | ---- | ---------- | +| callback | AsyncCallback\ | 是 | 回调函数返回删除结果。| + +**示例:** + +```js +import http from '@ohos.net.http'; +let httpResponseCache = http.createHttpResponseCache(); +httpResponseCache.delete(err => { + if (err) { + console.log('delete fail'); + return; + } + console.log('delete success'); +}); +``` +### delete9+ + +delete(): Promise\ + +禁用缓存并删除其中的数据,使用Promise方式作为异步方法。 + +**系统能力**:SystemCapability.Communication.NetStack + +**参数:** + +| 类型 | 说明 | +| --------------------------------- | ------------------------------------- | +| Promise\ | 以Promise形式返回删除结果。 | + +**示例:** + +```js +import http from '@ohos.net.http'; +let httpResponseCache = http.createHttpResponseCache(); +httpResponseCache.delete().then() => { + console.log('delete success'); +}).catch(err => { + console.log('delete fail'); +}); +``` + ## Response常用错误码 | 错误码 | 说明 | @@ -448,3 +591,21 @@ request方法回调函数的返回值类型。 | 6 | 无法解析主机。 | | 7 | 无法连接代理或主机。 | +## HttpDataType9+ + +http的数据类型。 + +| **HttpDataType 的合法值** | 说明 | +| :------------------ | :----------- | +| STRING | 字符串类型。 | +| OBJECT | 对象类型。 | +| ARRAY_BUFFER | 二进制数组类型。| + +## HttpProtocol9+ + +http协议版本。 + +| **HttpProtocol 的合法值** | 说明 | +| :----------------- | :----------- | +| HTTP1_1 | 协议http1.1 | +| HTTP2 | 协议http2 | diff --git a/zh-cn/application-dev/reference/apis/js-apis-socket.md b/zh-cn/application-dev/reference/apis/js-apis-socket.md index 078dbaf17a9d404ea8529daf3b4f44490b6f6b06..4f44634d66d940abbbd332666118be42b0f20529 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-socket.md +++ b/zh-cn/application-dev/reference/apis/js-apis-socket.md @@ -1453,3 +1453,1067 @@ TCPSocket连接的其他属性。 | sendBufferSize | number | 否 | 发送缓冲区大小(单位:Byte)。 | | reuseAddress | boolean | 否 | 是否重用地址。默认为false。 | | socketTimeout | number | 否 | 套接字超时时间,单位毫秒(ms)。 | + +## socket.constructTLSSocketInstance9+ + +constructTLSSocketInstance(): TLSSocket + +创建并返回一个TLSSocket对象。 + +**需要权限**:ohos.permission.INTERNET + +**系统能力**:SystemCapability.Communication.NetStack + +**返回值:** + +| 类型 | 说明 | +| :--------------------------------- | :---------------------- | +| [TLSSocket](#tlssocket9) | 返回一个TLSSocket对象。 | + +**示例:** + +```js +let tls = socket.constructTLSSocketInstance(); +``` + +## TLSSocket9+ + +TLSSocket连接。在调用TLSSocket的方法前,需要先通过[socket.constructTLSSocketInstance](#socketconstructtlssocketinstance9)创建TLSSocket对象。 + +### bind9+ + +bind\(address: NetAddress, callback: AsyncCallback\): void + +绑定IP地址和端口。使用callback方法作为异步方法。 + +**需要权限**:ohos.permission.INTERNET + +**系统能力**:SystemCapability.Communication.NetStack + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------- | ---- | ------------------------------------------------------ | +| address | [NetAddress](#netaddress) | 是 | 目标地址信息,参考[NetAddress](#netaddress)。 | +| callback | AsyncCallback\ | 是 | 回调函数。成功返回TLSSocket绑定本机的IP地址和端口的结果。 失败返回错误码,错误信息。| + +**错误码:** + +| 错误码ID | 错误信息 | +| 401 | Parameter error. | +| 201 | Permission denied. | +| 2303198 | Address already in use. | +| 2300002 | System internal error. | + +**示例:** + +```js +let tls = socket.constructTLSSocketInstance(); +tls.bind({address: '192.168.xx.xxx', port: xxxx, family: 1}, err => { + if (err) { + console.log('bind fail'); + return; + } + console.log('bind success'); +}); +``` + +### bind9+ + +bind\(address: NetAddress\): Promise + +绑定IP地址和端口。使用Promise方法作为异步方法。 + +**需要权限**:ohos.permission.INTERNET + +**系统能力**:SystemCapability.Communication.NetStack + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------- | ---------------------------------- | ---- | ------------------------------------------------------ | +| address | [NetAddress](#netaddress) | 是 | 目标地址信息,参考[NetAddress](#netaddress)。 | + +**返回值:** + +| 类型 | 说明 | +| :-------------- | :------------------------------------------------------- | +| Promise\ | 以Promise形式返回TLSSocket绑定本机的IP地址和端口的结果。失败返回错误码,错误信息。 | + +**错误码:** + +| 错误码ID | 错误信息 | +| 401 | Parameter error. | +| 201 | Permission denied. | +| 2303198 | Address already in use. | +| 2300002 | System internal error. | + +**示例:** + +```js +let tls = socket.constructTLSSocketInstance(); +let promise = tls.bind({address: '192.168.xx.xxx', port: xxxx, family: 1}); +promise.then(() => { + console.log('bind success'); +}).catch(err => { + console.log('bind fail'); +}); +``` + +### getState9+ + +getState\(callback: AsyncCallback\): void + +在TLSSocket的bind成功之后,获取TLSSocket状态。使用callback方式作为异步方法。 + +**系统能力**:SystemCapability.Communication.NetStack + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------------------------------------ | ---- | ---------- | +| callback | AsyncCallback\<[SocketStateBase](#socketstatebase)> | 是 | 回调函数。成功返回TLSSocket状态,失败返回错误码,错误信息。 | + +**错误码:** + +| 错误码ID | 错误信息 | +| 2303188 | Socket operation on non-socket.| +| 2300002 | System internal error. | + +**示例:** + +```js +let tls = socket.constructTLSSocketInstance(); +let promise = tls.bind({address: '192.168.xx.xxx', port: xxxx, family: 1}, err => { + if (err) { + console.log('bind fail'); + return; + } + console.log('bind success'); +}); +tls.getState((err, data) => { + if (err) { + console.log('getState fail'); + return; + } + console.log('getState success:' + JSON.stringify(data)); +}); +``` + +### getState9+ + +getState\(\): Promise + +在TLSSocket的bind成功之后,获取TLSSocket状态。使用Promise方式作为异步方法。 + +**系统能力**:SystemCapability.Communication.NetStack + +**返回值:** + +| 类型 | 说明 | +| :----------------------------------------------- | :----------------------------------------- | +| Promise\<[SocketStateBase](#socketstatebase)> | 以Promise形式返回获取TLSSocket状态的结果。失败返回错误码,错误信息。| + +**错误码:** + +| 错误码ID | 错误信息 | +| 2303188 | Socket operation on non-socket.| +| 2300002 | System internal error. | + +**示例:** + +```js +let tls = socket.constructTLSSocketInstance(); +tls.bind({address: '192.168.xx.xxx', port: xxxx, family: 1}, err => { + if (err) { + console.log('bind fail'); + return; + } + console.log('bind success'); +}); +let promise = tls.getState(); +promise.then(() => { + console.log('getState success'); +}).catch(err => { + console.log('getState fail'); +}); +``` + +### setExtraOptions9+ + +setExtraOptions\(options: TCPExtraOptions, callback: AsyncCallback\): void + +在TLSSocket的bind成功之后,设置TCPSocket连接的其他属性。使用callback方式作为异步方法。 + +**系统能力**:SystemCapability.Communication.NetStack + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ----------------------------------------- | ---- | ------------------------------------------------------------ | +| options | [TCPExtraOptions](#tcpextraoptions) | 是 | TCPSocket连接的其他属性,参考[TCPExtraOptions](#tcpextraoptions)。 | +| callback | AsyncCallback\ | 是 | 回调函数。成功返回设置TCPSocket连接的其他属性的结果,失败返回错误码,错误信息。| + +**错误码:** + +| 错误码ID | 错误信息 | +| 401 | Parameter error. | +| 2303188 | Socket operation on non-socket.| +| 2300002 | System internal error. | + +**示例:** + +```js +let tls = socket.constructTLSSocketInstance(); +tls.bind({address: '192.168.xx.xxx', port: xxxx, family: 1}, err => { + if (err) { + console.log('bind fail'); + return; + } + console.log('bind success'); +}); + +tls.setExtraOptions({ + keepAlive: true, + OOBInline: true, + TCPNoDelay: true, + socketLinger: { on:true, linger:10 }, + receiveBufferSize: 1000, + sendBufferSize: 1000, + reuseAddress: true, + socketTimeout: 3000, +},err => { + if (err) { + console.log('setExtraOptions fail'); + return; + } + console.log('setExtraOptions success'); +}); +``` + +### setExtraOptions9+ + +setExtraOptions\(options: TCPExtraOptions\): Promise + +在TLSSocket的bind成功之后,设置TCPSocket连接的其他属性,使用Promise方式作为异步方法。 + +**系统能力**:SystemCapability.Communication.NetStack + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------- | ----------------------------------------- | ---- | ------------------------------------------------------------ | +| options | [TCPExtraOptions](#tcpextraoptions) | 是 | TCPSocket连接的其他属性,参考[TCPExtraOptions](#tcpextraoptions)。 | + +**返回值:** + +| 类型 | 说明 | +| :-------------- | :--------------------------------------------------- | +| Promise\ | 以Promise形式返回设置TCPSocket连接的其他属性的结果。失败返回错误码,错误信息。 | + +**错误码:** + +| 错误码ID | 错误信息 | +| 401 | Parameter error. | +| 2303188 | Socket operation on non-socket.| +| 2300002 | System internal error. | + +**示例:** + +```js +let tls = socket.constructTLSSocketInstance(); +tls.bind({address: '192.168.xx.xxx', port: xxxx, family: 1}, err => { + if (err) { + console.log('bind fail'); + return; + } + console.log('bind success'); +}); +let promise = tls.setExtraOptions({ + keepAlive: true, + OOBInline: true, + TCPNoDelay: true, + socketLinger: { on:true, linger:10 }, + receiveBufferSize: 1000, + sendBufferSize: 1000, + reuseAddress: true, + socketTimeout: 3000, +}); +promise.then(() => { + console.log('setExtraOptions success'); +}).catch(err => { + console.log('setExtraOptions fail'); +}); +``` + +### connect9+ + +connect(options: TLSConnectOptions, callback: AsyncCallback\): void + +在TLSSocket上bind成功之后,进行通信连接,并创建和初始化TLS会话,实现建立连接过程,启动与服务器的TLS/SSL握手,实现数据传输功能,使用callback方式作为异步方法。 + +**系统能力**:SystemCapability.Communication.NetStack + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------------------------| ----| --------------- | +| options | [TLSConnectOptions](#tlsconnectoptions9) | 是 | TLSSocket连接所需要的参数。| +| callback | AsyncCallback\ | 是 | 回调函数,成功无返回,失败返回错误码,错误信息。| + +**错误码:** + +| 错误码ID | 错误信息 | +| 401 | Parameter error. | +| 2303104 | Interrupted system call. | +| 2303109 | Bad file number. | +| 2303111 | Resource temporarily unavailable try again. | +| 2303113 | System permission denied. | +| 2303188 | Socket operation on non-socket. | +| 2303191 | Protocol wrong type for socket. | +| 2303198 | Address already in use. | +| 2303199 | Cannot assign requested address. | +| 2303210 | Connection timed out. | +| 2303501 | SSL is null. | +| 2303502 | Error in tls reading. | +| 2303503 | Error in tls writing | +| 2303505 | Error occurred in the tls system call. | +| 2303506 | Error clearing tls connection. | +| 2300002 | System internal error. | + +**示例:** + +```js +let tls = socket.constructTLSSocketInstance(); // Two way authentication +tls.bind({address: '192.168.xxx.xxx', port: xxxx, family: 1}, err => { + if (err) { + console.log('bind fail'); + return; + } + console.log('bind success'); +}); +let Protocol = socket.Protocol; +let options = { + ALPNProtocols: ["spdy/1", "http/1.1"], + address: { + address: "192.168.xx.xxx", + port: xxxx, + family: 1, + }, + secureOptions: { + key: "xxxx", + cert: "xxxx", + ca: ["xxxx"], + passwd: "xxxx", + protocols: [Protocol.TLSv12], + useRemoteCipherPrefer: true, + signatureAlgorithms: rsa_pss_rsae_sha256:ECDSA+SHA25, + cipherSuite: AES256-SHA256, + }, +}; +tls.connect(options, (err, data) => { + console.info(err); + console.info(data); +}); + +let tlsOneWay = socket.constructTLSSocketInstance(); // One way authentication +tlsOneWay.bind({address: '192.168.xxx.xxx', port: xxxx, family: 1}, err => { + if (err) { + console.log('bind fail'); + return; + } + console.log('bind success'); +}); +let oneWayOptions = { + address: { + address: "192.168.xxx.xxx", + port: xxxx, + family: 1, + }, + secureOptions: { + ca: ["xxxx","xxxx"], + cipherSuite: AES256-SHA256, + }, +}; +tlsOneWay.connect(options, (err, data) => { + console.info(err); + console.info(data); +}); +``` + +### connect9+ + +connect(options: TLSConnectOptions): Promise\ + +在TLSSocket上bind成功之后,进行通信连接,并创建和初始化TLS会话,实现建立连接过程,启动与服务器的TLS/SSL握手,实现数据传输功能,该连接包括两种认证方式,单向认证与双向认证,使用Promise方式作为异步方法。 + +**系统能力**:SystemCapability.Communication.NetStack + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | --------------------------------------| ----| --------------- | +| options | [TLSConnectOptions](#tlsconnectoptions9) | 是 | 连接所需要的参数。| + +**返回值:** + +| 类型 | 说明 | +| ------------------------------------------- | ----------------------------- | +| Promise\ | 以Promise形式返回,成功无返回,失败返回错误码,错误信息。| + +**错误码:** + +| 错误码ID | 错误信息 | +| 401 | Parameter error. | +| 2303104 | Interrupted system call. | +| 2303109 | Bad file number. | +| 2303111 | Resource temporarily unavailable try again. | +| 2303113 | System permission denied. | +| 2303188 | Socket operation on non-socket. | +| 2303191 | Protocol wrong type for socket. | +| 2303198 | Address already in use. | +| 2303199 | Cannot assign requested address. | +| 2303210 | Connection timed out. | +| 2303501 | SSL is null. | +| 2303502 | Error in tls reading. | +| 2303503 | Error in tls writing | +| 2303505 | Error occurred in the tls system call. | +| 2303506 | Error clearing tls connection. | +| 2300002 | System internal error. | + +**示例:** + +```js +let tls = socket.constructTLSSocketInstance(); // Two way authentication +tls.bind({address: '192.168.xxx.xxx', port: xxxx, family: 1}, err => { + if (err) { + console.log('bind fail'); + return; + } + console.log('bind success'); +}); +let Protocol = socket.Protocol; +let options = { + ALPNProtocols: ["spdy/1", "http/1.1"], + address: { + address: "xxxx", + port: xxxx, + family: 1, + }, + secureOptions: { + key: "xxxx", + cert: "xxxx", + ca: ["xxxx"], + passwd: "xxxx", + protocols: [Protocol.TLSv12], + useRemoteCipherPrefer: true, + signatureAlgorithms: rsa_pss_rsae_sha256:ECDSA+SHA25, + cipherSuite: AES256-SHA256, + }, +}; +tls.connect(options).then(data => { + console.info(data); +}).catch(err => { + console.error(err); +}); + +let tlsOneWay = socket.constructTLSSocketInstance(); // One way authentication +tlsOneWay.bind({address: '192.168.xxx.xxx', port: xxxx, family: 1}, err => { + if (err) { + console.log('bind fail'); + return; + } + console.log('bind success'); +}); +let oneWayOptions = { + address: { + address: "192.168.xxx.xxx", + port: xxxx, + family: 1, + }, + secureOptions: { + ca: ["xxxx","xxxx"], + cipherSuite: AES256-SHA256, + }, +}; +tlsOneWay.connect(oneWayOptions).then(data => { + console.info(data); +}).catch(err => { + console.error(err); +}); +``` + +### getRemoteAddress9+ + +getRemoteAddress\(callback: AsyncCallback\): void + +在TLSSocket通信连接成功之后,获取对端Socket地址。使用callback方式作为异步方法。 + +**系统能力**:SystemCapability.Communication.NetStack + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------------------------------- | ---- | ---------- | +| callback | AsyncCallback\<[NetAddress](#netaddress)> | 是 | 回调函数。成功返回对端的socket地址,失败返回错误码,错误信息。 | + +**错误码:** + +| 错误码ID | 错误信息 | +| 2303188 | Socket operation on non-socket.| +| 2300002 | System internal error. | + +**示例:** + +```js +tls.getRemoteAddress((err, data) => { + if (err) { + console.log('getRemoteAddress fail'); + return; + } + console.log('getRemoteAddress success:' + JSON.stringify(data)); +}); +``` + +### getRemoteAddress9+ + +getRemoteAddress\(\): Promise\ + +在TLSSocket通信连接成功之后,获取对端Socket地址。使用Promise方式作为异步方法。 + +**系统能力**:SystemCapability.Communication.NetStack + +**返回值:** + +| 类型 | 说明 | +| :------------------------------------------ | :------------------------------------------ | +| Promise\<[NetAddress](#netaddress)> | 以Promise形式返回获取对端socket地址的结果。失败返回错误码,错误信息。 | + +**错误码:** + +| 错误码ID | 错误信息 | +| 2303188 | Socket operation on non-socket.| +| 2300002 | System internal error. | + +**示例:** + +```js +let promise = tls.getRemoteAddress(); +promise.then(() => { + console.log('getRemoteAddress success'); +}).catch(err => { + console.log('getRemoteAddress fail'); +}); +``` + +### getCertificate9+ + +getCertificate(callback: AsyncCallback\<[X509CertRawData](#x509certrawdata9)>): void + +在TLSSocket通信连接成功之后,获取本地的数字证书,该接口只适用于双向认证时,使用callback方式作为异步方法。 + +**系统能力**:SystemCapability.Communication.NetStack + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ----------------------------------------| ---- | ---------------| +| callback | AsyncCallback\<[X509CertRawData](#x509certrawdata9)> | 是 | 回调函数,成功返回本地的证书,失败返回错误码,错误信息。| + +**错误码:** + +| 错误码ID | 错误信息 | +| 2303501 | SSL is null. | +| 2303504 | Error looking up x509. | +| 2300002 | System internal error. | + +**示例:** + +```js +tls.getCertificate((err, data) => { + if (err) { + console.log("getCertificate callback error = " + err); + } else { + console.log("getCertificate callback = " + data); + } +}); +``` + +### getCertificate9+ + +getCertificate():Promise\<[X509CertRawData](#x509certrawdata9)> + +在TLSSocket通信连接之后,获取本地的数字证书,该接口只适用于双向认证时,使用Promise方式作为异步方法。 + +**系统能力**:SystemCapability.Communication.NetStack + +**返回值:** + +| 类型 | 说明 | +| -------------- | -------------------- | +| Promise\<[X509CertRawData](#x509certrawdata9)> | 以Promise形式返回本地的数字证书的结果。失败返回错误码,错误信息。 | + +**错误码:** + +| 错误码ID | 错误信息 | +| 2303501 | SSL is null. | +| 2303504 | Error looking up x509. | +| 2300002 | System internal error. | + +**示例:** + +```js +tls.getCertificate().then(data => { + console.info(data); +}).catch(err => { + console.error(err); +}); +``` + +### getRemoteCertificate9+ + +getRemoteCertificate(callback: AsyncCallback\<[X509CertRawData](#x509certrawdata9)>): void + +在TLSSocket通信连接成功之后,获取服务端的数字证书,使用callback方式作为异步方法。 + +**系统能力**:SystemCapability.Communication.NetStack + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ----------------------------------------| ---- | ---------------| +| callback | AsyncCallback\<[X509CertRawData](#x509certrawdata9)> | 是 | 回调函数,返回服务端的证书。失败返回错误码,错误信息。 | + +**错误码:** + +| 错误码ID | 错误信息 | +| 2303501 | SSL is null. | +| 2300002 | System internal error. | + +**示例:** + +```js +tls.getRemoteCertificate((err, data) => { + if (err) { + console.log("getRemoteCertificate callback error = " + err); + } else { + console.log("getRemoteCertificate callback = " + data); + } +}); +``` + +### getRemoteCertificate9+ + +getRemoteCertificate():Promise\<[X509CertRawData](#x509certrawdata9)> + +在TLSSocket通信连接成功之后,获取服务端的数字证书,使用Promise方式作为异步方法。 + +**系统能力**:SystemCapability.Communication.NetStack + +**返回值:** + +| 类型 | 说明 | +| -------------- | -------------------- | +| Promise\<[X509CertRawData](#x509certrawdata9)> | 以Promise形式返回服务端的数字证书的结果。失败返回错误码,错误信息。 | + +**错误码:** + +| 错误码ID | 错误信息 | +| 2303501 | SSL is null. | +| 2300002 | System internal error. | + +**示例:** + +```js +tls.getRemoteCertificate().then(data => { + console.info(data); +}).catch(err => { + console.error(err); +}); +``` + +### getProtocol9+ + +getProtocol(callback: AsyncCallback\): void + +在TLSSocket通信连接成功之后,获取通信的协议版本,使用callback方式作为异步方法。 + +**系统能力**:SystemCapability.Communication.NetStack + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ----------------------------------------| ---- | ---------------| +| callback | AsyncCallback\ | 是 | 回调函数,返回通信的协议。失败返回错误码,错误信息。| + +**错误码:** + +| 错误码ID | 错误信息 | +| 2303501 | SSL is null. | +| 2303505 | Error occurred in the tls system call. | +| 2300002 | System internal error. | + +**示例:** + +```js +tls.getProtocol((err, data) => { + if (err) { + console.log("getProtocol callback error = " + err); + } else { + console.log("getProtocol callback = " + data); + } +}); +``` + +### getProtocol9+ + +getProtocol():Promise\ + +在TLSSocket通信连接成功之后,获取通信的协议版本,使用Promise方式作为异步方法。 + +**系统能力**:SystemCapability.Communication.NetStack + +**返回值:** + +| 类型 | 说明 | +| -------------- | -------------------- | +| Promise\ | 以Promise形式返回通信的协议。失败返回错误码,错误信息。 | + +**错误码:** + +| 错误码ID | 错误信息 | +| 2303501 | SSL is null. | +| 2303505 | Error occurred in the tls system call. | +| 2300002 | System internal error. | + +**示例:** + +```js +tls.getProtocol().then(data => { + console.info(data); +}).catch(err => { + console.error(err); +}); +``` + +### getCipherSuite9+ + +getCipherSuite(callback: AsyncCallback\>): void + +在TLSSocket通信连接成功之后,获取通信双方协商后的加密套件,使用callback方式作为异步方法。 + +**系统能力**:SystemCapability.Communication.NetStack + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ----------------------------------------| ---- | ---------------| +| callback | AsyncCallback\> | 是 | 回调函数,返回通信双方支持的加密套件。 失败返回错误码,错误信息。 | + +**错误码:** + +| 错误码ID | 错误信息 | +| 2303501 | SSL is null. | +| 2303502 | Error in tls reading. | +| 2303505 | Error occurred in the tls system call. | +| 2300002 | System internal error. | + +**示例:** + +```js +tls.getCipherSuite((err, data) => { + if (err) { + console.log("getCipherSuite callback error = " + err); + } else { + console.log("getCipherSuite callback = " + data); + } +}); +``` + +### getCipherSuite9+ + +getCipherSuite(): Promise\> + +在TLSSocket通信连接成功之后,获取通信双方协商后的加密套件,使用Promise方式作为异步方法。 + +**系统能力**:SystemCapability.Communication.NetStack + +**返回值:** + +| 类型 | 说明 | +| ---------------------- | --------------------- | +| Promise\> | 以Promise形式返回通信双方支持的加密套件。失败返回错误码,错误信息。 | + +**错误码:** + +| 错误码ID | 错误信息 | +| 2303501 | SSL is null. | +| 2303502 | Error in tls reading. | +| 2303505 | Error occurred in the tls system call. | +| 2300002 | System internal error. | + +**示例:** + +```js +tls.getCipherSuite().then(data => { + console.info(data); +}).catch(err => { + console.error(err); +}); +``` + +### getSignatureAlgorithms9+ + +getSignatureAlgorithms(callback: AsyncCallback\>): void + +在TLSSocket通信连接成功之后,获取通信双方协商后签名算法,该接口只适配双向认证模式下,使用callback方式作为异步方法。 + +**系统能力**:SystemCapability.Communication.NetStack + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------------------------| ---- | ---------------| +| callback | AsyncCallback\> | 是 | 回调函数,返回双方支持的签名算法。 | + +**错误码:** + +| 错误码ID | 错误信息 | +| 2303501 | SSL is null. | +| 2300002 | System internal error. | + +**示例:** + +```js +tls.getSignatureAlgorithms((err, data) => { + if (err) { + console.log("getSignatureAlgorithms callback error = " + err); + } else { + console.log("getSignatureAlgorithms callback = " + data); + } +}); +``` + +### getSignatureAlgorithms9+ + +getSignatureAlgorithms(): Promise\> + +在TLSSocket通信连接成功之后,获取通信双方协商后的签名算法,该接口只适配双向认证模式下,使用Promise方式作为异步方法。 + +**系统能力**:SystemCapability.Communication.NetStack + +**返回值:** + +| 类型 | 说明 | +| ---------------------- | -------------------- | +| Promise\> | 以Promise形式返回获取到的双方支持的签名算法。 | + +**错误码:** + +| 错误码ID | 错误信息 | +| 2303501 | SSL is null. | +| 2300002 | System internal error. | + +**示例:** + +```js +tls.getSignatureAlgorithms().then(data => { + console.info(data); +}).catch(err => { + console.error(err); +}); +``` + +### send9+ + +send(data: string, callback: AsyncCallback\): void + +在TLSSocket通信连接成功之后,向服务端发送消息,使用callback方式作为异步方法。 + +**系统能力**:SystemCapability.Communication.NetStack + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -----------------------------| ---- | ---------------| +| data | string | 是 | 发送的数据内容。 | +| callback | AsyncCallback\ | 是 | 回调函数,返回TLSSocket发送数据的结果。失败返回错误码,错误信息。 | + +**错误码:** + +| 错误码ID | 错误信息 | +| 401 | Parameter error. | +| 2303501 | SSL is null. | +| 2303503 | Error in tls writing | +| 2303505 | Error occurred in the tls system call. | +| 2303506 | Error clearing tls connection. | +| 2300002 | System internal error. | + +**示例:** + +```js +tls.send("xxxx", (err) => { + if (err) { + console.log("send callback error = " + err); + } else { + console.log("send success"); + } +}); +``` + +### send9+ + +send(data: string): Promise\ + +在TLSSocket通信连接成功之后,向服务端发送消息,使用Promise方式作为异步方法。 + +**系统能力**:SystemCapability.Communication.NetStack + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -----------------------------| ---- | ---------------| +| data | string | 是 | 发送的数据内容。 | + +**错误码:** + +| 错误码ID | 错误信息 | +| 401 | Parameter error. | +| 2303501 | SSL is null. | +| 2303503 | Error in tls writing | +| 2303505 | Error occurred in the tls system call. | +| 2303506 | Error clearing tls connection. | +| 2300002 | System internal error. | + +**返回值:** + +| 类型 | 说明 | +| -------------- | -------------------- | +| Promise\ | 以Promise形式返回,返回TLSSocket发送数据的结果。失败返回错误码,错误信息。 | + +**示例:** + +```js +tls.send("xxxx").then(() =>{ + console.log("send success"); +}).catch(err => { + console.error(err); +}); +``` + +### close9+ + +close(callback: AsyncCallback\): void + +在TLSSocket通信连接成功之后,断开连接,使用callback方式作为异步方法。 + +**系统能力**:SystemCapability.Communication.NetStack + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -----------------------------| ---- | ---------------| +| callback | AsyncCallback\ | 是 | 回调函数,成功返回TLSSocket关闭连接的结果。 失败返回错误码,错误信息。 | + +**错误码:** + +| 错误码ID | 错误信息 | +| 2303501 | SSL is null. | +| 2303505 | Error occurred in the tls system call. | +| 2303506 | Error clearing tls connection. | +| 2300002 | System internal error. | + +**示例:** + +```js +tls.close((err) => { + if (err) { + console.log("close callback error = " + err); + } else { + console.log("close success"); + } +}); +``` + +### close9+ + +close(): Promise\ + +在TLSSocket通信连接成功之后,断开连接,使用Promise方式作为异步方法。 + +**系统能力**:SystemCapability.Communication.NetStack + +**返回值:** + +| 类型 | 说明 | +| -------------- | -------------------- | +| Promise\ | 以Promise形式返回,返回TLSSocket关闭连接的结果。失败返回错误码,错误信息。 | + +**错误码:** + +| 错误码ID | 错误信息 | +| 2303501 | SSL is null. | +| 2303505 | Error occurred in the tls system call. | +| 2303506 | Error clearing tls connection. | +| 2300002 | System internal error. | + +**示例:** + +```js +tls.close().then(() =>{ + console.log("close success"); +}).catch(err => { + console.error(err); +}); +``` + +## TLSConnectOptions9+ + +TLS连接的操作。 + +**系统能力**:SystemCapability.Communication.NetStack + +| 参数名 | 类型 | 说明 | +| -------------- | ------------------------------------- | -------------- | +| address | [NetAddress](#netaddress) | 网关地址。 | +| secureOptions | [TLSSecureOptions](#tlssecureoptions9) | TLS安全相关操作。| +| ALPNProtocols | Array\ | ALPN协议。 | + +## TLSSecureOptions9+ + +TLS安全相关操作,其中ca证书为必选参数,其他参数为可选参数。当本地证书cert和私钥key不为空时,开启双向验证模式。cert和key其中一项为空时,开启单向验证模式。 + +**系统能力**:SystemCapability.Communication.NetStack + +| 参数名 | 类型 | 说明 | +| --------------------- | ---------------------- | ----------------------------------- | +| ca | string \| Array\ | 服务端的ca证书,用于认证校验服务端的数字证书。| +| cert | string | 本地客户端的数字证书。 | +| key | string | 本地数字证书的私钥。 | +| passwd | string | 读取私钥的密码。 | +| protocols | [Protocol](#protocol9) \| Array\<[Protocol](#protocol9)> | TLS的协议版本。 | +| useRemoteCipherPrefer | boolean | 优先使用对等方的密码套件。 | +| signatureAlgorithms | string | 通信过程中的签名算法。 | +| cipherSuite | string | 通信过程中的加密套件。 | + +## Protocol9+ + +TLS通信的协议版本。 + +**系统能力**:SystemCapability.Communication.NetStack + +| **protocol 的合法值** | 说明 | +| :------------------ | :------------------ | +| TLSv12 | 使用TLSv1.2协议通信。 | +| TLSv13 | 使用TLSv1.3协议通信。 | + +## X509CertRawData9+ + +存储证书的数据。 + +**系统能力**:SystemCapability.Communication.NetStack + +| 参数名 | 类型 | 说明 | +| -------------- | ----------------------------- | -------------- | +| data | Uint8Array | 证书内容。 | +| encodingFormat | number | 编码格式der。 | \ No newline at end of file diff --git a/zh-cn/application-dev/reference/apis/js-apis-tlsSocket.md b/zh-cn/application-dev/reference/apis/js-apis-tlsSocket.md deleted file mode 100644 index 3d20d8473bf82661aeb2c21002d87723b9ac1b4c..0000000000000000000000000000000000000000 --- a/zh-cn/application-dev/reference/apis/js-apis-tlsSocket.md +++ /dev/null @@ -1,486 +0,0 @@ -# TLSSocket - -TLS Socket通信是对Socket通信的拓展。在Socket通信的基础上添加了一层安全性保护,提供了更高的安全性,分为三个子模块,包括密钥,证书,通信。 - -> **说明:** -> -> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 - -## 导入模块 - -```js -import socket from '@ohos.net.tlssocket' -``` - -## socket.constructTLSSocketInstance - -constructTLSSocketInstance(): TLSSocket - -创建并返回一个TLSSocket对象。 - -**需要权限**:ohos.permission.INTERNET - -**系统能力**:SystemCapability.Communication.NetStack - -**示例:** - -```js -let tlssocket = socket.constructTLSSocketInstance(); -``` - -## tlssocket.connect - -connect(options: TLSConnectOptions, callback: AsyncCallback\): void - -在TLSSocket上进行通信连接,并创建和初始化TLS会话,实现建立连接过程,启动与服务器的TLS/SSL握手,实现数据传输功能,使用callback方式作为异步方法。 - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------------| ----| --------------- | -| options | [TLSConnectOptions](#tlsconnectoptions) | 是 | 连接所需要的参数。| -| callback | AsyncCallback\ | 是 | 回调函数,成功无返回,失败返回对应错误码。 | - -**示例:** - -```js -let options = { - ALPNProtocols: ["spdy/1", "http/1.1"], - address: { - address: "xxx", - port: "xxxx", - family: 1, - }, - secureOptions: { - key: "xxxx", - cert: "xxxx", - ca: ["xxxx"], - passwd: "xxxx", - protocols: "TlsV1_2", - useRemoteCipherPrefer: true, - signatureAlgorithms: SHA256, - cipherSuites: AES256-SHA256, - }, -}; - -tlssocket.connect(options, (err, data) => { - console.info(err); - console.info(data); -}); -``` - -## tlssocket.connect - -connect(options: TLSConnectOptions): Promise\; - -在TLSSocket上进行通信连接,并创建和初始化TLS会话,实现建立连接过程,启动与服务器的TLS/SSL握手,实现数据传输功能,使用Promise方式作为异步方法。 - -**需要权限**:ohos.permission.INTERNET - -**系统能力**:SystemCapability.Communication.NetStack - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | --------------------------------------| ----| --------------- | -| options | [TLSConnectOptions](#tlsconnectoptions) | 是 | 连接所需要的参数。| - -**返回值:** - -| 类型 | 说明 | -| ------------------------------------------- | ----------------------------- | -| Promise\ | 以Promise形式返回,成功无返回,失败返回对应错误码。 | - -**示例:** - -```js -let options = { - ALPNProtocols: ["spdy/1", "http/1.1"], - address: { - address: "xxxx", - port: "xxxx", - family: 1, - }, - secureOptions: { - key: "xxxx", - cert: "xxxx", - ca: ["xxxx"], - passwd: "xxxx", - protocols: "TlsV1_2", - useRemoteCipherPrefer: true, - signatureAlgorithms: SHA256, - cipherSuites: AES256-SHA256, - }, -}; - -tlssocket.connect(options).then(data => { - console.info(data); -}).catch(err => { - console.error(err); -}); -``` - -## tlssocket.getCertificate - -getCertificate(callback: AsyncCallback\): void; - -在TLSSocket通信连接之后,获取本地的数字证书,使用callback方式作为异步方法。 - -**需要权限**:ohos.permission.INTERNET - -**系统能力**:SystemCapability.Communication.NetStack - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ----------------------------------------| ---- | ---------------| -| callback | AsyncCallback\ | 是 | 回调函数,返回本地的证书。| - -**示例:** - -```js -tlssocket.getCertificate((err, data) => { - if (err) { - console.log("getCertificate callback error = " + err); - } else { - console.log("getCertificate callback = " + data); - } -}); -``` - -## tlssocket.getCertificate - -getCertificate():Promise\; - -在TLSSocket通信连接之后,获取本地的数字证书,使用Promise方式作为异步方法。 - -**需要权限**:ohos.permission.INTERNET - -**系统能力**:SystemCapability.Communication.NetStack - -**返回值:** - -| 类型 | 说明 | -| -------------- | -------------------- | -| Promise\ | 以Promise形式返回本地的数字证书。 | - -**示例:** - -```js -tlssocket.getCertificate().then(data => { - console.info(data); -}).catch(err => { - console.error(err); -}); -``` - -## tlssocket.getRemoteCertificate - -getRemoteCertificate(callback: AsyncCallback\): void; - -在TLSSocket通信连接之后,获取对等方的数字证书,使用callback方式作为异步方法。 - -**需要权限**:ohos.permission.INTERNET - -**系统能力**:SystemCapability.Communication.NetStack - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ----------------------------------------| ---- | ---------------| -| callback | AsyncCallback\ | 是 | 回调函数,返回对等方的证书。 | - -**示例:** - -```js -tlssocket.getRemoteCertificate((err, data) => { - if (err) { - console.log("getRemoteCertificate callback error = " + err); - } else { - console.log("getRemoteCertificate callback = " + data); - } -}); -``` - -## tlssocket.getRemoteCertificate - -getRemoteCertificate():Promise\; - -在TLSSocket通信连接之后,获取对等方的数字证书,使用Promise方式作为异步方法。 - -**需要权限**:ohos.permission.INTERNET - -**系统能力**:SystemCapability.Communication.NetStack - -**返回值:** - -| 类型 | 说明 | -| -------------- | -------------------- | -| Promise\ | 以Promise形式返回对等方的数字证书。 | - -**示例:** - -```js -tlssocket.getRemoteCertificate().then(data => { - console.info(data); -}).catch(err => { - console.error(err); -}); -``` - -## tlssocket.getProtocol - -getProtocol(callback: AsyncCallback\): void; - -在TLSSocket通信连接之后,获取通信的协议,使用callback方式作为异步方法。 - -**需要权限**:ohos.permission.INTERNET - -**系统能力**:SystemCapability.Communication.NetStack - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ----------------------------------------| ---- | ---------------| -| callback | AsyncCallback\ | 是 | 回调函数,返回通信的协议。 | - -**示例:** - -```js -tlssocket.getProtocol((err, data) => { - if (err) { - console.log("getProtocol callback error = " + err); - } else { - console.log("getProtocol callback = " + data); - } -}); -``` - -## tlssocket.getProtocol - -getProtocol():Promise\; - -在TLSSocket通信连接之后,获取通信的协议,使用Promise方式作为异步方法。 - -**需要权限**:ohos.permission.INTERNET - -**系统能力**:SystemCapability.Communication.NetStack - -**返回值:** - -| 类型 | 说明 | -| -------------- | -------------------- | -| Promise\ | 以Promise形式返回通信的协议。 | - -**示例:** - -```js -tlssocket.getProtocol().then(data => { - console.info(data); -}).catch(err => { - console.error(err); -}); -``` - -## tlssocket.getCipherSuites - -getCipherSuites(callback: AsyncCallback\>): void; - -在TLSSocket通信连接之后,获取通信双方支持的加密套件,使用callback方式作为异步方法。 - -**需要权限**:ohos.permission.INTERNET - -**系统能力**:SystemCapability.Communication.NetStack - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ----------------------------------------| ---- | ---------------| -| callback | AsyncCallback\> | 是 | 回调函数,返回通信双方支持的加密套件。 | - -**示例:** - -```js -tlssocket.getCipherSuites((err, data) => { - if (err) { - console.log("getCipherSuites callback error = " + err); - } else { - console.log("getCipherSuites callback = " + data); - } -}); -``` - -## tlssocket.getCipherSuites - -getCipherSuites(): Promise\>; - -在TLSSocket通信连接之后,获取通信双方支持的加密套件,使用Promise方式作为异步方法。 - -**需要权限**:ohos.permission.INTERNET - -**系统能力**:SystemCapability.Communication.NetStack - -**返回值:** - -| 类型 | 说明 | -| ---------------------- | --------------------- | -| Promise\> | 以Promise形式返回通信双方支持的加密套件。 | - -**示例:** - -```js -tlssocket.getCipherSuites().then(data => { - console.info(data); -}).catch(err => { - console.error(err); -}); -``` - -## tlssocket.getSignatureAlgorithms - -getSignatureAlgorithms(callback: AsyncCallback\>): void; - -在TLSSocket通信连接之后,获取通信双方支持的签名算法,使用callback方式作为异步方法。 - -**需要权限**:ohos.permission.INTERNET - -**系统能力**:SystemCapability.Communication.NetStack - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------------------------| ---- | ---------------| -| callback | AsyncCallback\> | 是 | 回调函数,返回双方支持的签名算法。 | - -**示例:** - -```js -tlssocket.getSignatureAlgorithms((err, data) => { - if (err) { - console.log("getSignatureAlgorithms callback error = " + err); - } else { - console.log("getSignatureAlgorithms callback = " + data); - } -}); -``` - -## tlssocket.getSignatureAlgorithms - -getSignatureAlgorithms(): Promise\>; - -在TLSSocket通信连接之后,获取通信双方支持的签名算法,使用Promise方式作为异步方法。 - -**需要权限**:ohos.permission.INTERNET - -**系统能力**:SystemCapability.Communication.NetStack - -**返回值:** - -| 类型 | 说明 | -| ---------------------- | -------------------- | -| Promise\> | 以Promise形式返回获取到的双方支持的签名算法。 | - -**示例:** - -```js -tlssocket.getSignatureAlgorithms().then(data => { - console.info(data); -}).catch(err => { - console.error(err); -}); -``` - -## tlssocket.close - -close(callback: AsyncCallback\): void; - -在TLSSocket通信连接之后,断开连接,使用callback方式作为异步方法。 - -**需要权限**:ohos.permission.INTERNET - -**系统能力**:SystemCapability.Communication.NetStack - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -----------------------------| ---- | ---------------| -| callback | AsyncCallback\ | 是 | 回调函数,返回TLSSocket关闭连接的结果。 | - -**示例:** - -```js -tlssocket.close((err) => { - if (err) { - console.log("close callback error = " + err); - } else { - console.log("close success"); - } -}); -``` - -## tlssocket.close - -close(): Promise\; - -在TLSSocket通信连接之后,断开连接,使用Promise方式作为异步方法。 - -**需要权限**:ohos.permission.INTERNET - -**系统能力**:SystemCapability.Communication.NetStack - -**返回值:** - -| 类型 | 说明 | -| -------------- | -------------------- | -| Promise\ | 以Promise形式返回,返回TLSSocket关闭连接的结果。 | - -**示例:** - -```js -tlssocket.close().then(() => - console.log("close success"); -}).catch(err => { - console.error(err); -}); -``` - -## TLSConnectOptions - -TLS连接的操作。 - -**系统能力**:SystemCapability.Communication.NetStack - -| 参数名 | 类型 | 说明 | -| -------------- | ------------------------------------- | -------------- | -| address | [NetAddress](#netaddress) | 网关地址。 | -| secureOptions | [TLSSecureOptions](#tlssecureoptions) | TLS安全相关操作。| -| ALPNProtocols | Array\ | ALPN协议。 | - -## NetAddress - -网络地址。 - -**系统能力**:SystemCapability.Communication.NetStack - -| 参数名 | 类型 | 说明 | -| ------- | ------ | ---------------------------- | -| address | string | 地址。 | -| family | number | IPv4 = 1,IPv6 = 2,默认IPv4。 | -| port | number | 端口,取值范围\[0, 65535]。 | - -## TLSSecureOptions - -TLS安全相关操作。 - -**系统能力**:SystemCapability.Communication.NetStack - -| 参数名 | 类型 | 说明 | -| --------------------- | ---------------------- | ---------------------- | -| ca | string \| Array\ | ca证书。 | -| cert | string | 本地数字证书。 | -| key | string | 本地数字证书私钥。 | -| passwd | string | 密码。 | -| protocols | string | 协议名。 | -| useRemoteCipherPrefer | boolean | 优先使用对等方的密码套件。 | -| signatureAlgorithms | string | 设置签名算法。 | -| cipherSuites | string | 加密套件。 | \ No newline at end of file