harmony 鸿蒙Netstack

  • 2025-06-16
  • 浏览 (2)

Netstack

概述

为网络协议栈模块提供C接口。

起始版本: 11

汇总

文件

名称 描述
net_ssl_c.h 为SSL/TLS证书链校验模块定义C接口。引用文件: <network\/netstack\/net_ssl\/net_ssl_c.h>
net_ssl_c_type.h 定义SSL/TLS证书链校验模块的C接口需要的数据结构。引用文件: <network\/netstack\/net_ssl\/net_ssl_c_type.h>
net_websocket.h 为websocket客户端模块定义C接口。引用文件: <network\/netstack\/net_websocket.h>
net_websocket_type.h 定义websocket客户端模块的C接口需要的数据结构。引用文件: <network\/net_websocket_type.h>

结构体

名称 描述
NetStack_CertBlob 证书数据结构体。
NetStack_CertificatePinning 证书锁定信息数据结构体。
NetStack_Certificates 证书信息数据结构体。
WebSocket_CloseResult websocket客户端来自服务端关闭的参数。
WebSocket_CloseOption websocket客户端主动关闭的参数。
WebSocket_ErrorResult websocket客户端来自服务端连接错误的参数。
WebSocket_OpenResult websocket客户端来自服务端连接成功的参数。
WebSocket_Header websocket客户端增加header头的链表节点。
WebSocket_RequestOptions websocket客户端和服务端建立连接的参数。
WebSocket websocket客户端结构体。

类型定义

名称 描述
(* WebSocket_OnOpenCallback) (struct WebSocket *client, WebSocket_OpenResult openResult) websocket客户端接收open消息的回调函数定义。
(* WebSocket_OnMessageCallback) (struct WebSocket *client, char *data, uint32_t length) websocket客户端接收数据的回调函数定义。每个消息最大长度为4K,超过4K自动分片。
(* WebSocket_OnErrorCallback) (struct WebSocket *client, WebSocket_ErrorResult errorResult) websocket客户端接收error错误消息的回调函数定义。
(* WebSocket_OnCloseCallback) (struct WebSocket *client, WebSocket_CloseResult closeResult) websocket客户端接收close消息的回调函数定义。

枚举

名称 描述
NetStack_CertType {
NetStack_CERT_TYPE_PEM = 0,
NetStack_CERT_TYPE_DER = 1,
NetStack_CERT_TYPE_INVALID
}
证书类型枚举。
WebSocket_ErrCode {
WEBSOCKET_OK = 0,
E_BASE = 1000,
WEBSOCKET_CLIENT_NULL = (E_BASE + 1),
WEBSOCKET_CLIENT_NOT_CREATED = (E_BASE + 2),
WEBSOCKET_CONNECTION_ERROR = (E_BASE + 3),
WEBSOCKET_CONNECTION_PARSE_URL_ERROR = (E_BASE + 5),
WEBSOCKET_CONNECTION_NO_MEMORY = (E_BASE + 6),
WEBSOCKET_CONNECTION_CLOSED_BY_PEER = (E_BASE + 7),
WEBSOCKET_DESTROYED = (E_BASE + 8),
WEBSOCKET_PROTOCOL_ERROR = (E_BASE + 9),
WEBSOCKET_SEND_NO_MEMORY = (E_BASE + 10),
WEBSOCKET_SEND_DATA_NULL = (E_BASE + 11),
WEBSOCKET_DATA_LENGTH_EXCEEDED = (E_BASE + 12),
WEBSOCKET_QUEUE_LENGTH_EXCEEDED = (E_BASE + 13),
WEBSOCKET_NO_CLIENT_CONTEXT = (E_BASE + 14),
WEBSOCKET_NO_HEADER_CONTEXT = (E_BASE + 15),
WEBSOCKET_HEADER_EXCEEDED = (E_BASE + 16),
WEBSOCKET_NO_CONNECTION = (E_BASE + 17),
WEBSOCKET_NO_CONNECTION_CONTEXT = (E_BASE + 18)
}
websocket错误码。
NetStack_CertificatePinningKind {
PUBLIC_KEY,
}
证书锁定类型。
NetStack_HashAlgorithm {
SHA_256,
}
哈希算法类型。

函数

名称 描述
OH_WebSocketClient_Constructor (WebSocket_OnOpenCallback onOpen, WebSocket_OnMessageCallback onMessage, WebSocket_OnErrorCallback onError, WebSocket_OnCloseCallback onclose) Websocket客户端的构造函数。
OH_WebSocketClient_AddHeader (struct WebSocket *client, struct WebSocket_Header header) 将header头信息添加到client客户端request中。
OH_WebSocketClient_Connect (struct WebSocket *client, const char *url, struct WebSocket_RequestOptions options) 客户端连接服务端。
OH_WebSocketClient_Send (struct WebSocket *client, char *data, size_t length) 客户端向服务端发送数据。
OH_WebSocketClient_Close (struct WebSocket *client, struct WebSocket_CloseOption options) 客户端主动关闭websocket连接。
OH_WebSocketClient_Destroy (struct WebSocket *client) 释放websocket连接上下文和资源。
OH_NetStack_GetPinSetForHostName(const char *hostname, NetStack_CertificatePinning *pin) 获取证书锁定信息。
OH_NetStack_GetCertificatesForHostName(const char *hostname, NetStack_Certificates *certs) 获取证书信息。
OH_Netstack_DestroyCertificatesContent(NetStack_Certificates *certs) 释放证书内容。
OH_Netstack_IsCleartextPermitted(bool *isCleartextPermitted) 整体明文HTTP是否允许。
OH_Netstack_IsCleartextPermittedByHostName(const char *hostname, bool *isCleartextPermitted) 按域名明文HTTP是否允许。

变量

名称 描述
NetStack_CertBlob::type 证书类型。
NetStack_CertBlob::size 证书内容长度。
NetStack_CertBlob::data 证书内容。
NetStack_CertificatePinning::kind 证书锁定类型。
NetStack_CertificatePinning::hashAlgorithm 哈希算法。
NetStack_CertificatePinning::publicKeyHash 哈希值。
NetStack_Certificates::content 证书的PEM内容。
NetStack_Certificates::length 证书数量。
WebSocket_CloseResult::code 关闭值。
WebSocket_CloseResult::reason 关闭原因。
WebSocket_CloseOption::code 关闭值。
WebSocket_CloseOption::reason 关闭原因。
WebSocket_ErrorResult::errorCode 错误码。
WebSocket_ErrorResult::errorMessage 错误的消息。
WebSocket_OpenResult::code websocket客户端连接成功码。
WebSocket_OpenResult::reason websocket客户端连接原因。
WebSocket_Header::fieldName header头的字段名。
WebSocket_Header::fieldValue header头的字段内容。
WebSocket_Header * WebSocket_Header::next header头链表的next指针。
WebSocket_Header * WebSocket_RequestOptions::headers header头信息。
WebSocket_OnOpenCallback WebSocket::onOpen 客户端接收连接消息的回调指针。
WebSocket_OnMessageCallback WebSocket::onMessage 客户端接收消息的回调指针。
WebSocket_OnErrorCallback WebSocket::onError 客户端接收错误消息的回调指针。
WebSocket_OnCloseCallback WebSocket::onClose 客户端接收关闭消息的回调指针。
WebSocket_RequestOptions WebSocket::requestOptions 客户端建立连接请求内容。

类型定义说明

WebSocket_OnCloseCallback

typedef void(* WebSocket_OnCloseCallback) (struct WebSocket *client, WebSocket_CloseResult closeResult)

描述 websocket客户端接收close消息的回调函数定义。

起始版本: 11

参数:

名称 描述
client websocket客户端。
closeResult websocket客户端接收关闭消息的内容。

WebSocket_OnErrorCallback

typedef void(* WebSocket_OnErrorCallback) (struct WebSocket *client, WebSocket_ErrorResult errorResult)

描述 websocket客户端接收error错误消息的回调函数定义。

起始版本: 11

参数:

名称 描述
client websocket客户端。
errorResult websocket客户端接收连接错误消息的内容。

WebSocket_OnMessageCallback

typedef void(* WebSocket_OnMessageCallback) (struct WebSocket *client, char *data, uint32_t length)

描述 websocket客户端接收数据的回调函数定义。

起始版本: 11

参数:

名称 描述
client websocket客户端。
data websocket客户端接收的数据。
length websocket客户端接收的数据长度。

WebSocket_OnOpenCallback

typedef void(* WebSocket_OnOpenCallback) (struct WebSocket *client, WebSocket_OpenResult openResult)

描述 websocket客户端接收open消息的回调函数定义。

起始版本: 11

参数:

名称 描述
client websocket客户端。
openResult websocket客户端接收建立连接消息的内容。

枚举类型说明

NetStack_CertType

enum NetStack_CertType

描述

证书类型枚举。

起始版本: 11

枚举值 描述
NetStack_CERT_TYPE_PEM PEM证书类型。
NetStack_CERT_TYPE_DER DER证书类型。
NetStack_CERT_TYPE_INVALID 错误证书类型。

WebSocket_ErrCode

enum WebSocket_ErrCode

描述 websocket错误码

起始版本: 11

枚举值 描述
WEBSOCKET_OK 执行成功。
E_BASE 异常错误代码的基础。
WEBSOCKET_CLIENT_NULL websocket为空。
WEBSOCKET_CLIENT_NOT_CREATED websocket未创建。
WEBSOCKET_CONNECTION_ERROR websocket客户端连接错误。
WEBSOCKET_CONNECTION_PARSE_URL_ERROR websocket客户端连接参数解析错误。
WEBSOCKET_CONNECTION_NO_MEMORY websocket客户端连接时创建上下文无内存。
WEBSOCKET_CONNECTION_CLOSED_BY_PEER 初始化时候关闭。
WEBSOCKET_DESTROYED websocket连接被销毁。
WEBSOCKET_PROTOCOL_ERROR websocket客户端连接时候协议错误。
WEBSOCKET_SEND_NO_MEMORY websocket客户端发送数据时候没有足够内存。
WEBSOCKET_SEND_DATA_NULL websocket客户端发送数据为空。
WEBSOCKET_DATA_LENGTH_EXCEEDED websocket客户端发送数据长度超限制。
WEBSOCKET_QUEUE_LENGTH_EXCEEDED websocket客户端发送数据队列长度超限制。
WEBSOCKET_NO_CLIENT_CONTEXT websocket客户端上下文为空。
WEBSOCKET_NO_HEADER_CONTEXT websocket客户端header头异常。
WEBSOCKET_HEADER_EXCEEDED websocket客户端header头超过限制。
WEBSOCKET_NO_CONNECTION websocket客户端没有连接。
WEBSOCKET_NO_CONNECTION_CONTEXT websocket客户端没有连接上下文。

NetStack_CertificatePinningKind

enum NetStack_CertificatePinningKind

描述

证书锁定类型枚举。

起始版本: 12

枚举值 描述
PUBLIC_KEY 公钥锁定类型。

NetStack_HashAlgorithm

enum NetStack_HashAlgorithm

描述

哈希算法。

起始版本: 12

枚举值 描述
SHA_256 SHA-256算法。

函数说明

OH_NetStack_CertVerification()

uint32_t OH_NetStack_CertVerification(const struct NetStack_CertBlob * cert, const struct NetStack_CertBlob * caCert )

描述

证书链校验接口。

系统能力: SystemCapability.Communication.NetStack

起始版本: 11

参数:

名称 描述
cert 用户传入的待校验证书。
caCert 用户指定的证书,若为空则以系统预置证书进行校验。

返回:

0 - 成功.

2305001 - 未指定的错误.

2305002 - 无法获取颁发者证书.

2305003 - 无法获取证书吊销列表(CRL).

2305004 - 无法解密证书签名.

2305005 - 无法解密CRL签名.

2305006 - 无法解码颁发者公钥.

2305007 - 证书签名失败.

2305008 - CRL签名失败.

2305009 - 证书尚未生效.

2305010 - 证书已过期.

2305011 - CRL尚未有效.

2305012 - CRL已过期.

2305023 - 证书已被吊销.

2305024 - 证书颁发机构(CA)无效.

2305027 - 证书不受信任.

2305069 - 证书验证时发生错误调用或无效的参数.

OH_NetStack_GetPinSetForHostName()

int32_t OH_NetStack_GetPinSetForHostName (const char * hostname, NetStack_CertificatePinning * pin)

描述

获取证书锁定信息。

系统能力: SystemCapability.Communication.NetStack

起始版本: 12

参数:

名称 描述
hostname 主机名。
pin 用户接受证书锁定信息的结构体。

返回:

0 - 成功.

401- 参数设置错误.

2305999 - 内存错误.

OH_NetStack_GetCertificatesForHostName()

int32_t OH_NetStack_GetCertificatesForHostName(const char * hostname, NetStack_Certificates * certs)

描述

获取证书信息。

系统能力: SystemCapability.Communication.NetStack

起始版本: 12

参数:

名称 描述
hostname 主机名。
certs 用户接受证书信息的结构体。

返回:

0 - 成功.

401- 参数设置错误.

2305999 - 内存错误.

OH_Netstack_DestroyCertificatesContent()

void OH_Netstack_DestroyCertificatesContent(NetStack_Certificates * certs)

描述

释放证书内容(certs->content),当NetStack_Certificates使用结束时调用此方法释放该结构体中证书的内存。

系统能力: SystemCapability.Communication.NetStack

起始版本: 12

参数:

名称 描述
certs 证书信息结构体。

OH_Netstack_IsCleartextPermitted()

int32_t  OH_Netstack_IsCleartextPermitted(bool *isCleartextPermitted)

描述

从应用预置network_config.json文件中获取整体明文HTTP是否允许信息,默认允许明文HTTP访问。

系统能力: SystemCapability.Communication.NetStack

起始版本: 18

参数:

名称 描述
isCleartextPermitted 整体明文HTTP是否允许。返回true表示允许访问明文HTTP,false表示不允许。默认返回true。

返回:

0 - 成功。

201 - 权限校验失败。

401 - 参数设置错误。

OH_Netstack_IsCleartextPermittedByHostName()

int32_t OH_Netstack_IsCleartextPermittedByHostName(const char *hostname, bool *isCleartextPermitted)

描述

从应用预置network_config.json文件中获取按域名明文HTTP是否允许信息,默认允许明文HTTP访问。

系统能力: SystemCapability.Communication.NetStack

起始版本: 18

参数:

名称 描述
hostname 主机名。
isCleartextPermitted 按域名明文HTTP是否允许。返回true表示允许明文HTTP访问该主机,false表示不允许。默认返回true。

返回:

0 - 成功。

201 - 权限校验失败。

401 - 参数设置错误。

OH_WebSocketClient_AddHeader()

int OH_WebSocketClient_AddHeader (struct WebSocket * client, struct WebSocket_Header header )

描述 将header头信息添加到client客户端request中。

系统能力: SystemCapability.Communication.NetStack

起始版本: 11

参数:

名称 描述
client 客户端指针。
header header头信息。

返回:

返回值为0表示执行成功。返回错误信息可以查看OH_WebSocket_ErrCode

OH_WebSocketClient_Close()

int OH_WebSocketClient_Close (struct WebSocket * client, struct WebSocket_CloseOption options )

描述 客户端主动关闭websocket连接。

系统能力: SystemCapability.Communication.NetStack

起始版本: 11

参数:

名称 描述
client 客户端。
url 客户端要连接到服务端的地址。
options 发起关闭连接的可选参数。

返回:

返回值为0表示执行成功。返回错误信息可以查看OH_WebSocket_ErrCode

Permission:

ohos.permission.INTERNET

OH_WebSocketClient_Connect()

int OH_WebSocketClient_Connect (struct WebSocket * client, const char * url, struct WebSocket_RequestOptions options )

描述 客户端连接服务端。

系统能力: SystemCapability.Communication.NetStack

起始版本: 11

参数:

名称 描述
client 客户端指针。
url 客户端要连接到服务端的地址。
options 发起连接的可选参数。

返回:

返回值为0表示执行成功。返回错误信息可以查看OH_WebSocket_ErrCode

Permission:

ohos.permission.INTERNET

OH_WebSocketClient_Constructor()

struct WebSocket* OH_WebSocketClient_Constructor (WebSocket_OnOpenCallback onOpen, WebSocket_OnMessageCallback onMessage, WebSocket_OnErrorCallback onError, WebSocket_OnCloseCallback onclose )

描述 Websocket客户端的构造函数。

系统能力: SystemCapability.Communication.NetStack

起始版本: 11

参数:

名称 描述
onMessage 客户端定义的接收消息的回调函数。
onClose 客户端定义的关闭消息的回调函数。
onError 客户端定义的错误消息的回调函数。
onOpen 客户端定义的建立连接消息的回调函数。

返回:

成功返回客户端指针,失败返回为NULL。

OH_WebSocketClient_Destroy()

int OH_WebSocketClient_Destroy (struct WebSocket * client)

描述 释放websocket连接上下文和资源。

系统能力: SystemCapability.Communication.NetStack

起始版本: 11

参数:

名称 描述
client 客户端。

返回:

返回值为0表示执行成功。返回错误信息可以查看OH_WebSocket_ErrCode

Permission:

ohos.permission.INTERNET

OH_WebSocketClient_Send()

int OH_WebSocketClient_Send (struct WebSocket * client, char * data, size_t length )

描述 客户端向服务端发送数据。

系统能力: SystemCapability.Communication.NetStack

起始版本: 11

参数:

名称 描述
client 客户端。
data 客户端发送的数据。
length 客户端发送的数据长度。

返回:

0 - 成功.

返回值为0表示执行成功。返回错误信息可以查看OH_WebSocket_ErrCode

Permission:

ohos.permission.INTERNET

变量说明

data

uint8_t* NetStack_CertBlob::data

描述

证书内容。

size

uint32_t NetStack_CertBlob::size

描述

证书内容长度。

type

enum NetStack_CertType NetStack_CertBlob::type

描述

证书类型。

kind

enum NetStack_CertificatePinningKind NetStack_CertificatePinning::kind

描述

证书锁定类型。

hashAlgorithm

enum NetStack_HashAlgorithm NetStack_CertificatePinning::hashAlgorithm

描述

哈希算法。

publicKeyHash

char* NetStack_CertificatePinning::publicKeyHash

描述

哈希值。

content

char** NetStack_Certificates::content

描述

证书的PEM内容。

length

size_t NetStack_Certificates::length

描述

证书数量。

code [13]

uint32_t WebSocket_CloseResult::code

描述

关闭值。

code [23]

uint32_t WebSocket_CloseOption::code

描述

关闭值。

code [33]

uint32_t WebSocket_OpenResult::code

描述

websocket客户端连接成功码。

errorCode

uint32_t WebSocket_ErrorResult::errorCode

描述

错误码。

errorMessage

const char* WebSocket_ErrorResult::errorMessage

描述

错误的消息。

fieldName

const char* WebSocket_Header::fieldName

描述

header头的字段名。

fieldValue

const char* WebSocket_Header::fieldValue

描述

header头的字段内容。

next

struct WebSocket_Header* WebSocket_Header::next

描述

header头链表的next指针。

onClose

WebSocket_OnCloseCallback WebSocket::onClose

描述

客户端接收关闭消息的回调指针。

onError

WebSocket_OnErrorCallback WebSocket::onError

描述

客户端接收错误消息的回调指针。

onMessage

WebSocket_OnMessageCallback WebSocket::onMessage

描述

客户端接收消息的回调指针。

onOpen

WebSocket_OnOpenCallback WebSocket::onOpen

描述

客户端接收连接消息的回调指针。

reason [13]

const char* WebSocket_CloseResult::reason

描述

关闭原因。

reason [23]

const char* WebSocket_CloseOption::reason

描述

关闭原因。

reason [33]

const char* WebSocket_OpenResult::reason

描述

websocket客户端连接原因。

requestOptions

WebSocket_RequestOptions WebSocket::requestOptions

描述

客户端建立连接请求内容。

你可能感兴趣的鸿蒙文章

harmony 鸿蒙Network Kit(网络服务)

harmony 鸿蒙NetConn_ConnectionProperties

harmony 鸿蒙NetConn_HttpProxy

harmony 鸿蒙NetConn_NetAddr

harmony 鸿蒙NetConn_NetCapabilities

harmony 鸿蒙NetConn_NetConnCallback

harmony 鸿蒙NetConn_NetHandle

harmony 鸿蒙NetConn_NetHandleList

harmony 鸿蒙NetConn_NetSpecifier

harmony 鸿蒙NetConn_Route

0  赞