1# net_http.h 2<!--Kit: Network Kit--> 3<!--Subsystem: Communication--> 4<!--Owner: @wmyao_mm--> 5<!--Designer: @guo-min_net--> 6<!--Tester: @tongxilin--> 7<!--Adviser: @zhang_yixin13--> 8## 概述 9 10定义HTTP请求模块的接口。 11 12**引用文件:** <network/netstack/net_http.h> 13 14**库:** libnet_http.so 15 16**系统能力:** SystemCapability.Communication.NetStack 17 18**起始版本:** 20 19 20**相关模块:** [netstack](capi-netstack.md) 21 22## 汇总 23 24### 函数 25 26| 名称 | 描述 | 27| -- | -- | 28| [Http_Headers *OH_Http_CreateHeaders(void)](#oh_http_createheaders) | 创建HTTP请求或者响应的头。 | 29| [void OH_Http_DestroyHeaders(Http_Headers **headers)](#oh_http_destroyheaders) | 销毁HTTP请求或者响应的头。 | 30| [uint32_t OH_Http_SetHeaderValue(struct Http_Headers *headers, const char *name, const char *value)](#oh_http_setheadervalue) | 设置HTTP请求或者响应的头的键值对。 | 31| [Http_HeaderValue *OH_Http_GetHeaderValue(Http_Headers *headers, const char *name)](#oh_http_getheadervalue) | 通过键获取请求或响应头的值。 | 32| [Http_HeaderEntry *OH_Http_GetHeaderEntries(Http_Headers *headers)](#oh_http_getheaderentries) | 获取请求或响应头的所有键值对。 | 33| [void OH_Http_DestroyHeaderEntries(Http_HeaderEntry **headerEntry)](#oh_http_destroyheaderentries) | 销毁OH_Http_GetHeaderEntries中获取的所有键值对。 | 34| [Http_Request *OH_Http_CreateRequest(const char *url)](#oh_http_createrequest) | 创建HTTP请求。 | 35| [int OH_Http_Request(Http_Request *request, Http_ResponseCallback callback, Http_EventsHandler handler)](#oh_http_request) | 发起HTTP请求。 | 36| [void OH_Http_Destroy(struct Http_Request **request)](#oh_http_destroy) | 销毁HTTP请求。 | 37 38## 函数说明 39 40### OH_Http_CreateHeaders() 41 42``` 43Http_Headers *OH_Http_CreateHeaders(void) 44``` 45 46**描述** 47 48创建HTTP请求或者响应的头。 49 50**系统能力:** SystemCapability.Communication.NetStack 51 52**起始版本:** 20 53 54**返回:** 55 56| 类型 | 说明 | 57|--------------------| -- | 58| [Http_Headers](capi-netstack-http-headers.md) * | Http_Headers 返回HTTP请求或者响应的头,指向Http_Headers。 | 59 60### OH_Http_DestroyHeaders() 61 62``` 63void OH_Http_DestroyHeaders(Http_Headers **headers) 64``` 65 66**描述** 67 68销毁HTTP请求或者响应的头。 69 70**系统能力:** SystemCapability.Communication.NetStack 71 72**起始版本:** 20 73 74 75**参数:** 76 77| 参数项 | 描述 | 78| -- | -- | 79| [Http_Headers](capi-netstack-http-headers.md) **headers | 要被销毁的HTTP请求或响应的头,是通过OH_Http_CreateHeaders生成的数据。 | 80 81### OH_Http_SetHeaderValue() 82 83``` 84uint32_t OH_Http_SetHeaderValue(struct Http_Headers *headers, const char *name, const char *value) 85``` 86 87**描述** 88 89设置HTTP请求或者响应的头的键值对。 90 91**系统能力:** SystemCapability.Communication.NetStack 92 93**起始版本:** 20 94 95 96**参数:** 97 98| 参数项 | 描述 | 99| -- | -- | 100| [struct Http_Headers](capi-netstack-http-headers.md) *headers | 指向要设置的Http_Headers的指针。 | 101| const char *name | 键值。 | 102| const char *value | 键值对应的值。 | 103 104**返回:** 105 106| 类型 | 说明 | 107| -- | -- | 108| uint32_t | uint32_t 0 - 成功。 401 - 参数错误。 2300027 - 内存不足。 | 109 110### OH_Http_GetHeaderValue() 111 112``` 113Http_HeaderValue *OH_Http_GetHeaderValue(Http_Headers *headers, const char *name) 114``` 115 116**描述** 117 118通过键获取请求或响应头的值。 119 120**系统能力:** SystemCapability.Communication.NetStack 121 122**起始版本:** 20 123 124 125**参数:** 126 127| 参数项 | 描述 | 128| -- | -- | 129| [Http_Headers](capi-netstack-http-headers.md) *headers | 指向要获取值的Http_Headers的指针。 | 130| const char *name | 键值。 | 131 132**返回:** 133 134| 类型 | 说明 | 135|------------------------| -- | 136| [Http_HeaderValue](capi-netstack-http-headervalue.md) * | Http_HeaderValue 指向获取的Http_HeaderValue的指针。 | 137 138### OH_Http_GetHeaderEntries() 139 140``` 141Http_HeaderEntry *OH_Http_GetHeaderEntries(Http_Headers *headers) 142``` 143 144**描述** 145 146获取请求或响应头的所有键值对。 147 148**系统能力:** SystemCapability.Communication.NetStack 149 150**起始版本:** 20 151 152 153**参数:** 154 155| 参数项 | 描述 | 156| -- | -- | 157| [Http_Headers](capi-netstack-http-headers.md) *headers | 指向要获取值的Http_Headers的指针。 | 158 159**返回:** 160 161| 类型 | 说明 | 162|------------------------| -- | 163| [Http_HeaderEntry](capi-netstack-http-headerentry.md) * | Http_HeaderEntry 指向获取的Http_HeaderEntry的指针。 | 164 165### OH_Http_DestroyHeaderEntries() 166 167``` 168void OH_Http_DestroyHeaderEntries(Http_HeaderEntry **headerEntry) 169``` 170 171**描述** 172 173销毁OH_Http_GetHeaderEntries中获取的所有键值对。 174 175**系统能力:** SystemCapability.Communication.NetStack 176 177**起始版本:** 20 178 179 180**参数:** 181 182| 参数项 | 描述 | 183| -- | -- | 184| [Http_HeaderEntry](capi-netstack-http-headerentry.md) **headerEntry | 指向要销毁的Http_HeaderEntry的指针,是通过OH_Http_GetHeaderEntries获取的数据。 | 185 186### OH_Http_CreateRequest() 187 188``` 189Http_Request *OH_Http_CreateRequest(const char *url) 190``` 191 192**描述** 193 194创建HTTP请求。 195 196**系统能力:** SystemCapability.Communication.NetStack 197 198**起始版本:** 20 199 200 201**参数:** 202 203| 参数项 | 描述 | 204| -- | -- | 205| const char *url | 请求URL。 | 206 207**返回:** 208 209| 类型 | 说明 | 210|--------------------| -- | 211| [Http_Request](capi-netstack-http-request.md) * | 返回创建的请求,指向Http_Request的指针。 | 212 213### OH_Http_Request() 214 215``` 216int OH_Http_Request(Http_Request *request, Http_ResponseCallback callback, Http_EventsHandler handler) 217``` 218 219**描述** 220 221发起HTTP请求。 222 223**系统能力:** SystemCapability.Communication.NetStack 224 225**需要权限:** ohos.permission.INTERNET 226 227**起始版本:** 20 228 229 230**参数:** 231 232| 参数项 | 描述 | 233| -- | -- | 234| [Http_Request](capi-netstack-http-request.md) *request | 发送的请求,指向Http_Request的指针。 | 235| [Http_ResponseCallback](capi-net-http-type-h.md#http_responsecallback) callback | 请求的响应,指向Http_ResponseCallback。 | 236| [Http_EventsHandler](capi-netstack-http-eventshandler.md) handler | 监听不同HTTP事件的回调函数,指向Http_EventsHandler。 | 237 238**返回:** 239 240| 类型 | 说明 | 241| -- | -- | 242| int | 请求发起成功返回0,非0表示请求发起失败,错误码的具体描述,可以参考Http_ErrCode。<br> 在Http_ResponseCallback中也会携带errCode信息,表示请求发起成功,但是因为一些原因,和服务器的交互异常,具体异常原因,同步参考Http_ErrCode。 | 243 244### OH_Http_Destroy() 245 246``` 247void OH_Http_Destroy(struct Http_Request **request) 248``` 249 250**描述** 251 252销毁HTTP请求。 253 254**系统能力:** SystemCapability.Communication.NetStack 255 256**起始版本:** 20 257 258 259**参数:** 260 261| 参数项 | 描述 | 262| -- | -- | 263| [struct Http_Request](capi-netstack-http-request.md) **request | 要销毁的请求,指向Http_Request的指针,参考[Http_Request](capi-netstack-http-request.md)。 | 264 265 266