Link Kit C-SDK  4.0.0
aiot_http_api.h
浏览该文件的文档.
1 
10 #ifndef _AIOT_HTTP_API_H_
11 #define _AIOT_HTTP_API_H_
12 
13 #if defined(__cplusplus)
14 extern "C" {
15 #endif
16 
17 #include "core_stdinc.h"
18 
26 typedef enum {
60 
65 typedef enum {
175 
176  /* 以上选项配置的数据与 CORE_HTTPOPT_XXX 共用 */
177 
254 
257 
261 typedef enum {
275 
279 typedef struct {
283  aiot_http_recv_type_t type;
284  union {
288  struct {
292  uint32_t code;
293  } status_code;
297  struct {
301  char *key;
305  char *value;
306  } header;
310  struct {
314  uint8_t *buffer;
318  uint32_t len;
319  } body;
320  } data;
322 
336 typedef void (*aiot_http_recv_handler_t)(void *handle, const aiot_http_recv_t *packet, void *userdata);
337 
341 typedef enum {
347 
351 typedef struct {
352  aiot_http_event_type_t type;
354 
362 typedef void (* aiot_http_event_handler_t)(void *handle, const aiot_http_event_t *event, void *userdata);
363 
372 void *aiot_http_init(void);
373 
388 int32_t aiot_http_setopt(void *handle, aiot_http_option_t option, void *data);
389 
405 int32_t aiot_http_auth(void *handle);
406 
422 int32_t aiot_http_send(void *handle, char *topic, uint8_t *payload, uint32_t payload_len);
423 
453 int32_t aiot_http_recv(void *handle);
454 
465 int32_t aiot_http_deinit(void **p_handle);
466 
467 
468 #if defined(__cplusplus)
469 }
470 #endif
471 
472 #endif /* #ifndef _AIOT_HTTP_API_H_ */
473 
uint8_t * buffer
HTTP Body 的内容
Definition: aiot_http_api.h:314
当接收服务器返回的http报文时, 单行http header的最大长度
Definition: aiot_http_api.h:158
aiot_http_response_code_t
服务器返回的业务错误码
Definition: aiot_http_api.h:26
uint32_t code
HTTP Status Code.
Definition: aiot_http_api.h:292
30001, 消息上报失败
Definition: aiot_http_api.h:54
int32_t aiot_http_auth(void *handle)
向服务器发送认证请求, 获取token
Definition: aiot_http_api.c:327
Definition: aiot_http_api.h:255
void * aiot_http_init(void)
创建一个HTTP上云实例
Definition: aiot_http_api.c:230
char * value
单行 HTTP Header 的 value
Definition: aiot_http_api.h:305
aiot_http_option_t
aiot_http_setopt 函数的 option 参数, 对于下文每一个选项中的数据类型, 指的是 aiot_mqtt_setopt 中的data...
Definition: aiot_http_api.h:65
SDK收到HTTP报文, 传递给用户数据回调函数时, 对报文内容的描述
Definition: aiot_http_api.h:279
上报设备的扩展信息, 比如模组商ID和模组ID
Definition: aiot_http_api.h:235
销毁HTTP实例时, 等待其他api执行完毕的时间
Definition: aiot_http_api.h:148
20003, token错误, 请调用 aiot_http_auth 进行鉴权, 获取新token
Definition: aiot_http_api.h:50
int32_t aiot_http_recv(void *handle)
接受HTTP应答数据, 数据会从用户设置的 aiot_http_event_handler_t 回调函数输出
Definition: aiot_http_api.c:455
aiot_http_recv_type_t type
HTTP 消息类型, 更多信息请参考 aiot_http_recv_type_t.
Definition: aiot_http_api.h:283
是否使用http长连接
Definition: aiot_http_api.h:253
40000, 设备端上报过于频繁, 触发服务端限流
Definition: aiot_http_api.h:58
用户需要SDK暂存的上下文
Definition: aiot_http_api.h:189
aiot_http_recv_type_t
SDK收到HTTP报文, 传递给用户数据回调函数时, 对报文类型的描述
Definition: aiot_http_api.h:261
void(* aiot_http_recv_handler_t)(void *handle, const aiot_http_recv_t *packet, void *userdata)
HTTP 消息接收回调函数原型, 可以通过 aiot_http_setopt 接口的 AIOT_HTTPOPT_RECV_HANDLER 参数指定 ...
Definition: aiot_http_api.h:336
HTTP发送数据时, 在协议栈花费的最长时间
Definition: aiot_http_api.h:128
HTTP建联时, 建立网络连接的超时时间
Definition: aiot_http_api.h:120
HTTP 数据接收回调函数
Definition: aiot_http_api.h:197
设备的device name, 可从阿里云物联网平台控制台获取
Definition: aiot_http_api.h:213
SDK内部发生状态变化, 通过用户事件回调函数通知用户时, 对事件内容的描述
Definition: aiot_http_api.h:351
获取到HTTP Body, 返回完整的Body内容
Definition: aiot_http_api.h:273
20002, 请求的header中无token可表明设备端合法, 请调用 aiot_http_auth 进行鉴权, 获取新token ...
Definition: aiot_http_api.h:46
token无效事件, 此时用户应该调用 aiot_http_auth 获取新的token
Definition: aiot_http_api.h:345
aiot_http_event_type_t
SDK内部发生状态变化, 通过用户事件回调函数通知用户时, 对事件类型的描述
Definition: aiot_http_api.h:341
获取到HTTP Header, 每次返回Header中的一组键值对
Definition: aiot_http_api.h:269
0, 服务端成功接收到上报的消息
Definition: aiot_http_api.h:30
HTTP接收数据时, 在协议栈花费的最长时间
Definition: aiot_http_api.h:136
使用 aiot_http_auth 进行认证并获取token的超时时间
Definition: aiot_http_api.h:243
char * key
单行 HTTP Header 的 key
Definition: aiot_http_api.h:301
void(* aiot_http_event_handler_t)(void *handle, const aiot_http_event_t *event, void *userdata)
HTTP 事件回调函数原型, 可以通过 aiot_http_setopt 接口的 AIOT_HTTPOPT_EVENT_HANDLER 参数指定 ...
Definition: aiot_http_api.h:362
20001, token过期, 请调用 aiot_http_auth 进行鉴权, 获取新token
Definition: aiot_http_api.h:42
设备的device secret, 可从阿里云物联网平台控制台获取
Definition: aiot_http_api.h:221
int32_t aiot_http_send(void *handle, char *topic, uint8_t *payload, uint32_t payload_len)
上报数据到物联网平台
Definition: aiot_http_api.c:388
HTTP 服务器的域名地址或者ip地址
Definition: aiot_http_api.h:79
HTTP 内部事件回调函数
Definition: aiot_http_api.h:174
获取到HTTP Status Code
Definition: aiot_http_api.h:265
10001, 请求参数错误
Definition: aiot_http_api.h:38
uint32_t len
HTTP Body 的长度
Definition: aiot_http_api.h:318
当接收服务器返回的http报文时, 每次从 aiot_http_recv_handler_t 回调函数中给出的body最大长度 ...
Definition: aiot_http_api.h:166
HTTP 服务器的端口号
Definition: aiot_http_api.h:93
10000, 服务端返回未知错误
Definition: aiot_http_api.h:34
HTTP建联时, 网络使用的安全凭据
Definition: aiot_http_api.h:109
int32_t aiot_http_setopt(void *handle, aiot_http_option_t option, void *data)
设置HTTP实例参数
Definition: aiot_http_api.c:247
int32_t aiot_http_deinit(void **p_handle)
销毁参数p_handle所指定的HTTP实例
Definition: aiot_http_api.c:528
设备的product key, 可从阿里云物联网平台控制台获取
Definition: aiot_http_api.h:205
aiot_http_event_type_t type
Definition: aiot_http_api.h:352