14#include "tuya_cloud_types.h"
74#define DEF_URL_LEN 1024
100#define http_inf_client_get(url, callback, pri_data) \
101 http_inf_client_get_with_head(url, callback, pri_data, NULL, NULL)
116 INOUT PVOID_T *pri_data,
117 IN HTTP_HEAD_ADD_CB add_head_cb,
118 IN VOID* add_head_data);
133 INOUT PVOID_T *pri_data,
134 IN CONST UINT_T file_offset,
135 IN CONST UINT_T file_size);
137#define http_inf_client_post(url, callback, data, len, add_head_cb, add_head_data, p_decode_key, pri_data) \
138 http_inf_client_post_field(url, callback, data, len, add_head_cb, add_head_data, p_decode_key, pri_data, \
139 STANDARD_HDR_FLAGS|HDR_ADD_CONN_KEEP_ALIVE|HDR_ADD_CONTENT_TYPE_FORM_URLENCODE)
158 IN CONST BYTE_T *data,
160 IN HTTP_HEAD_ADD_CB add_head_cb,
161 IN VOID* add_head_data,
162 IN CONST CHAR_T *p_decode_key,
163 INOUT PVOID_T *pri_data,
166#define http_inf_client_post_raw(url, len, p_inf) \
167 http_inf_client_post_raw_field(url, len, p_inf, \
168 HRD_ADD_HTTP_RAW | STANDARD_HDR_FLAGS | HDR_ADD_CONN_KEEP_ALIVE | HDR_ADD_CONTENT_TYPE_JSON)
195#define http_inf_client_get_raw(url, p_inf, offset, total_len) \
196 http_inf_client_get_raw_with_head(url, p_inf, offset, total_len, NULL, NULL)
212 IN UINT_T offset, IN UINT_T total_len,
213 IN HTTP_HEAD_ADD_CB add_head_cb,
214 IN VOID* add_head_data);
225#define http_inf_client_put_raw(url, len, p_inf) \
226 http_inf_client_put_raw_field(url, len, p_inf, NULL, NULL)
242 IN HTTP_HEAD_ADD_CB add_head_cb,
243 IN VOID* add_head_data);
256 IN CONST BYTE_T *p_data,
304 IN CONST BYTE_T *data,
306 IN HTTP_HEAD_ADD_CB add_head_cb,
307 IN VOID* add_head_data,
308 INOUT PVOID_T *pri_data);
325 IN CONST BYTE_T *data,
327 IN HTTP_HEAD_ADD_CB add_head_cb,
328 IN VOID* add_head_data,
329 INOUT PVOID_T *pri_data);
346 IN HTTP_HEAD_ADD_CB add_head_cb, IN VOID* add_head_data,
347 INOUT PVOID_T *pri_data);
OPERATE_RET http_inf_client_get_with_head(IN CONST CHAR_T *url, IN CONST HTTP_INF_CB callback, INOUT PVOID_T *pri_data, IN HTTP_HEAD_ADD_CB add_head_cb, IN VOID *add_head_data)
This API is used to GET HTTP request/response
OPERATE_RET fill_url_param(INOUT HTTP_URL_H_S *hu_h, IN CONST CHAR_T *key, IN CONST CHAR_T *value)
Add key/value param to HTTP url
OPERATE_RET http_inf_client_get_raw_with_head(IN CONST CHAR_T *url, INOUT HTTP_INF_H_S *p_inf, IN UINT_T offset, IN UINT_T total_len, IN HTTP_HEAD_ADD_CB add_head_cb, IN VOID *add_head_data)
This API is used to GET raw HTTP request/response
OPERATE_RET http_inf_client_add_head_cb_post(IN CONST char *url, IN CONST HTTP_INF_CB callback, IN CONST BYTE_T *data, IN CONST UINT_T len, IN HTTP_HEAD_ADD_CB add_head_cb, IN VOID *add_head_data, INOUT PVOID_T *pri_data)
This API is used to POST HTTP request/response
OPERATE_RET http_inf_client_put(IN CONST CHAR_T *url, IN CONST HTTP_INF_CB callback, IN CONST BYTE_T *data, IN CONST UINT_T len, IN HTTP_HEAD_ADD_CB add_head_cb, IN VOID *add_head_data, INOUT PVOID_T *pri_data)
This API is used to PUT HTTP request/response
OPERATE_RET http_inf_client_put_custom_content(IN CONST CHAR_T *url, IN CONST HTTP_INF_CB callback, IN http_custom_content_ctx_s *p_ctx, IN HTTP_HEAD_ADD_CB add_head_cb, IN VOID *add_head_data, INOUT PVOID_T *pri_data)
This API is used to PUT HTTP request/response with customized content
INT_T http_inf_write_content_raw(INOUT HTTP_INF_H_S *p_inf, IN CONST BYTE_T *p_data, IN CONST UINT_T len, BOOL_T chunked)
This API is used to write raw HTTP request content
OPERATE_RET httpc_inf_read_header_raw(INOUT HTTP_INF_H_S *p_inf)
This API is used to read raw HTTP response header
INT_T(* HTTP_DATA_RECV)(PVOID_T hand, PVOID_T buf, UINT_T len)
This API is used to handle HTTP response content
Definition: http_inf.h:31
OPERATE_RET fill_url_head(INOUT HTTP_URL_H_S *hu_h, IN CONST CHAR_T *url_h)
Initiaze url of HTTP request
OPERATE_RET(* HTTP_INF_CB)(HTTP_INF_H_S *hand)
This API is used to handle customized HTTP response
Definition: http_inf.h:60
HTTP_URL_H_S * create_http_url_h(IN CONST USHORT_T buf_len, IN CONST USHORT_T param_cnt)
Create url of HTTP request
INT_T httpc_inf_read_content_raw(IN HTTP_INF_H_S *p_inf, IN BYTE_T *buf, IN CONST UINT_T buf_len)
This API is used to read raw HTTP response content
VOID del_http_url_h(IN HTTP_URL_H_S *hu_h)
Free url of HTTP request
OPERATE_RET http_inf_client_put_raw_field(IN CONST CHAR_T *url, IN INT_T len, INOUT HTTP_INF_H_S *p_inf, IN HTTP_HEAD_ADD_CB add_head_cb, IN VOID *add_head_data)
This API is used to PUT raw HTTP request/response, extra header is supported
OPERATE_RET http_inf_close_raw(INOUT HTTP_INF_H_S *p_inf)
This API is used to close raw HTTP request
OPERATE_RET http_inf_client_get_file(IN CONST CHAR_T *url, IN CONST HTTP_INF_CB callback, INOUT PVOID_T *pri_data, IN CONST UINT_T file_offset, IN CONST UINT_T file_size)
This API is used to GET HTTP file
OPERATE_RET http_inf_client_post_raw_field(IN CONST CHAR_T *url, IN CONST UINT_T len, INOUT HTTP_INF_H_S *p_inf, IN http_hdr_field_sel_t field_flags)
This API is used to POST raw HTTP request/response
OPERATE_RET http_inf_client_post_field(IN CONST CHAR_T *url, IN CONST HTTP_INF_CB callback, IN CONST BYTE_T *data, IN CONST UINT_T len, IN HTTP_HEAD_ADD_CB add_head_cb, IN VOID *add_head_data, IN CONST CHAR_T *p_decode_key, INOUT PVOID_T *pri_data, IN CONST http_hdr_field_sel_t field_flags)
This API is used to POST HTTP request/response
http_hdr_field_sel_t
Definition: httpc.h:94
Definition of HTTP request/response structure
Definition: http_inf.h:36
BOOL_T chunked
Definition: http_inf.h:38
CHAR_T * p_decode_key
Definition: http_inf.h:50
INT_T status_code
Definition: http_inf.h:48
PVOID_T * pri_data
Definition: http_inf.h:46
PVOID_T hand
Definition: http_inf.h:42
UINT_T content_len
Definition: http_inf.h:40
HTTP_DATA_RECV recv
Definition: http_inf.h:44
Definition of HTTP URL param structure
Definition: http_inf.h:65
BYTE_T cnt
Definition: http_inf.h:69
BYTE_T total
Definition: http_inf.h:67
Definition of HTTP URL structure
Definition: http_inf.h:78
USHORT_T head_size
Definition: http_inf.h:84
HTTP_PARAM_H_S * param_h
Definition: http_inf.h:80
USHORT_T buf_len
Definition: http_inf.h:86
CHAR_T * param_in
Definition: http_inf.h:82