luat_soc_sdk_2024 V1.0
|
结构体 | |
struct | luat_http_ctrl_t |
宏定义 | |
#define | HTTP_GET_DATA (2) |
#define | HTTP_POST_DATA (1) |
#define | HTTP_OK (0) |
#define | HTTP_ERROR_STATE (-1) |
#define | HTTP_ERROR_HEADER (-2) |
#define | HTTP_ERROR_BODY (-3) |
#define | HTTP_ERROR_CONNECT (-4) |
#define | HTTP_ERROR_CLOSE (-5) |
#define | HTTP_ERROR_RX (-6) |
#define | HTTP_ERROR_DOWNLOAD (-7) |
#define | HTTP_ERROR_TIMEOUT (-8) |
#define | HTTP_ERROR_FOTA (-9) |
#define | HTTP_CALLBACK (1) |
#define | HTTP_RE_REQUEST_MAX (3) |
#define | HTTP_TIMEOUT (10*60*1000) |
类型定义 | |
typedef void(* | luat_http_cb) (int status, void *data, uint32_t data_len, void *user_param) |
函数 | |
luat_http_ctrl_t * | luat_http_client_create (luat_http_cb cb, void *user_param, int adapter_index) |
创建一个http客户端 | |
int | luat_http_client_base_config (luat_http_ctrl_t *http_ctrl, uint32_t timeout, uint8_t debug_onoff, uint8_t retry_cnt) |
http客户端的通用配置,创建客户端时已经有默认配置,可以不配置 | |
int | luat_http_client_ssl_config (luat_http_ctrl_t *http_ctrl, int mode, const char *server_cert, uint32_t server_cert_len, const char *client_cert, uint32_t client_cert_len, const char *client_cert_key, uint32_t client_cert_key_len, const char *client_cert_key_password, uint32_t client_cert_key_password_len) |
客户端SSL配置,只有访问https才需要配置 | |
int | luat_http_client_clear (luat_http_ctrl_t *http_ctrl) |
清空用户设置的POST数据和request head参数 | |
int | luat_http_client_set_user_head (luat_http_ctrl_t *http_ctrl, const char *name, const char *value) |
设置一条用户的request head参数,Content-Length一般不需要,在设置POST的body时自动生成 | |
int | luat_http_client_start (luat_http_ctrl_t *http_ctrl, const char *url, uint8_t type, uint8_t ipv6, uint8_t continue_mode) |
启动一个http请求 | |
int | luat_http_client_close (luat_http_ctrl_t *http_ctrl) |
停止当前的http请求,调用后不再有http回调了 | |
int | luat_http_client_destroy (luat_http_ctrl_t **p_http_ctrl) |
完全释放掉当前的http客户端 | |
int | luat_http_client_post_body (luat_http_ctrl_t *http_ctrl, void *data, uint32_t len) |
POST请求时发送body数据,如果数据量比较大,可以在HTTP_STATE_SEND_BODY回调里分次发送 | |
int | luat_http_client_get_status_code (luat_http_ctrl_t *http_ctrl) |
http获取状态码 | |
int | luat_http_client_pause (luat_http_ctrl_t *http_ctrl, uint8_t is_pause) |
http客户端设置暂停 | |
int | luat_http_client_set_get_offset (luat_http_ctrl_t *http_ctrl, uint32_t offset) |
GET请求时要求服务器从offset位置开始传输数据,谨慎使用 | |
#define HTTP_CALLBACK (1) |
在文件 luat_http.h 第 64 行定义.
#define HTTP_ERROR_BODY (-3) |
在文件 luat_http.h 第 56 行定义.
#define HTTP_ERROR_CLOSE (-5) |
在文件 luat_http.h 第 58 行定义.
#define HTTP_ERROR_CONNECT (-4) |
在文件 luat_http.h 第 57 行定义.
#define HTTP_ERROR_DOWNLOAD (-7) |
在文件 luat_http.h 第 60 行定义.
#define HTTP_ERROR_FOTA (-9) |
在文件 luat_http.h 第 62 行定义.
#define HTTP_ERROR_HEADER (-2) |
在文件 luat_http.h 第 55 行定义.
#define HTTP_ERROR_RX (-6) |
在文件 luat_http.h 第 59 行定义.
#define HTTP_ERROR_STATE (-1) |
在文件 luat_http.h 第 54 行定义.
#define HTTP_ERROR_TIMEOUT (-8) |
在文件 luat_http.h 第 61 行定义.
#define HTTP_GET_DATA (2) |
在文件 luat_http.h 第 49 行定义.
#define HTTP_OK (0) |
在文件 luat_http.h 第 53 行定义.
#define HTTP_POST_DATA (1) |
在文件 luat_http.h 第 50 行定义.
#define HTTP_RE_REQUEST_MAX (3) |
在文件 luat_http.h 第 66 行定义.
#define HTTP_TIMEOUT (10*60*1000) |
在文件 luat_http.h 第 68 行定义.
typedef void(* luat_http_cb) (int status, void *data, uint32_t data_len, void *user_param) |
在文件 luat_http.h 第 47 行定义.
anonymous enum |
枚举值 | |
---|---|
HTTP_STATE_IDLE | |
HTTP_STATE_CONNECT | |
HTTP_STATE_SEND_HEAD | |
HTTP_STATE_SEND_BODY_START | |
HTTP_STATE_SEND_BODY | |
HTTP_STATE_GET_HEAD | |
HTTP_STATE_GET_BODY | |
HTTP_STATE_DONE | |
HTTP_STATE_WAIT_CLOSE |
在文件 luat_http.h 第 25 行定义.
int luat_http_client_base_config | ( | luat_http_ctrl_t * | http_ctrl, |
uint32_t | timeout, | ||
uint8_t | debug_onoff, | ||
uint8_t | retry_cnt ) |
http客户端的通用配置,创建客户端时已经有默认配置,可以不配置
http_ctrl | 客户端 |
timeout | 单次数据传输超时时间,单位ms |
debug_onoff | 是否开启调试打印,开启后会占用一点系统资源 |
retry_cnt | 因传输异常而重传的最大次数 |
int luat_http_client_clear | ( | luat_http_ctrl_t * | http_ctrl | ) |
清空用户设置的POST数据和request head参数
http_ctrl | 客户端 |
int luat_http_client_close | ( | luat_http_ctrl_t * | http_ctrl | ) |
停止当前的http请求,调用后不再有http回调了
http_ctrl | 客户端 |
luat_http_ctrl_t * luat_http_client_create | ( | luat_http_cb | cb, |
void * | user_param, | ||
int | adapter_index ) |
创建一个http客户端
cb | http运行过程回调函数 |
user_param | 回调时用户自己的参数 |
adapter_index | 网卡适配器,不清楚的写-1,系统自动分配 |
int luat_http_client_destroy | ( | luat_http_ctrl_t ** | p_http_ctrl | ) |
完全释放掉当前的http客户端
p_http_ctrl | 客户端指针的地址 |
int luat_http_client_get_status_code | ( | luat_http_ctrl_t * | http_ctrl | ) |
http获取状态码
http_ctrl | 客户端 |
int luat_http_client_pause | ( | luat_http_ctrl_t * | http_ctrl, |
uint8_t | is_pause ) |
http客户端设置暂停
http_ctrl | 客户端 |
is_pause | 是否暂停 |
int luat_http_client_post_body | ( | luat_http_ctrl_t * | http_ctrl, |
void * | data, | ||
uint32_t | len ) |
POST请求时发送body数据,如果数据量比较大,可以在HTTP_STATE_SEND_BODY回调里分次发送
http_ctrl | 客户端 |
data | body数据 |
len | body数据长度 |
int luat_http_client_set_get_offset | ( | luat_http_ctrl_t * | http_ctrl, |
uint32_t | offset ) |
GET请求时要求服务器从offset位置开始传输数据,谨慎使用
http_ctrl | 客户端 |
offset | 偏移位置 |
int luat_http_client_set_user_head | ( | luat_http_ctrl_t * | http_ctrl, |
const char * | name, | ||
const char * | value ) |
设置一条用户的request head参数,Content-Length一般不需要,在设置POST的body时自动生成
http_ctrl | 客户端 |
name | head参数的name |
value | head参数的value |
int luat_http_client_ssl_config | ( | luat_http_ctrl_t * | http_ctrl, |
int | mode, | ||
const char * | server_cert, | ||
uint32_t | server_cert_len, | ||
const char * | client_cert, | ||
uint32_t | client_cert_len, | ||
const char * | client_cert_key, | ||
uint32_t | client_cert_key_len, | ||
const char * | client_cert_key_password, | ||
uint32_t | client_cert_key_password_len ) |
客户端SSL配置,只有访问https才需要配置
http_ctrl | 客户端 |
mode | <0 关闭SSL功能,并忽略后续参数; 0忽略证书验证过程,大部分https应用就可以这个配置,后续证书配置可以都写NULL和0; 2强制证书验证,后续证书相关参数必须写对 |
server_cert | 服务器证书字符串,结尾必须有0,如果不忽略证书验证,这个必须有 |
server_cert_len | 服务器证书数据长度,长度包含结尾的0,也就是strlen(server_cert) + 1 |
client_cert | 客户端证书字符串,结尾必须有0,双向认证才有,一般金融行业可能会用 |
client_cert_len | 客户端证书数据长度,长度包含结尾的0 |
client_cert_key | 客户端证书私钥字符串,结尾必须有0,双向认证才有,一般金融行业可能会用 |
client_cert_key_len | 客户端证书私钥数据长度,长度包含结尾的0 |
client_cert_key_password | 客户端证书私钥密码字符串,结尾必须有0,双向认证才有,如果私钥没有密码保护,则不需要 |
client_cert_key_password_len | 客户端证书私钥密码数据长度,长度包含结尾的0 |
int luat_http_client_start | ( | luat_http_ctrl_t * | http_ctrl, |
const char * | url, | ||
uint8_t | type, | ||
uint8_t | ipv6, | ||
uint8_t | continue_mode ) |
启动一个http请求
http_ctrl | 客户端 |
url | http请求完整的url,如果有转义字符需要提前转义好 |
type | 请求类型,0 get 1 post 2 put 3 delete |
ipv6 | 是否存在IPV6的服务器 |
data_mode | 大数据模式,接收数据超过1KB的时候,必须开启。开启后请求头里自动加入"Accept: application/octet-stream\r\n" |