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 IN CONST CHAR_T *url,
120 IN CONST CHAR_T *p_decode_key,
121 INOUT PVOID_T *pri_data);
136 INOUT PVOID_T *pri_data,
137 IN HTTP_HEAD_ADD_CB add_head_cb,
138 IN VOID* add_head_data);
151#define http_inf_client_get_file(url, callback, pri_data, file_offset, file_size) \
152 http_inf_client_get_file_session(url, callback, pri_data, file_offset, file_size, FALSE)
168 INOUT PVOID_T *pri_data,
169 IN CONST UINT_T file_offset,
170 IN CONST UINT_T file_size,
171 IN BOOL_T session_persistence);
180#define http_inf_client_post(url, callback, data, len, add_head_cb, add_head_data, p_decode_key, pri_data) \
181 http_inf_client_post_field(url, callback, data, len, add_head_cb, add_head_data, p_decode_key, pri_data, \
182 STANDARD_HDR_FLAGS|HDR_ADD_CONN_KEEP_ALIVE|HDR_ADD_CONTENT_TYPE_FORM_URLENCODE)
184#define http_inf_client_post_field(url, callback, data, len, \
185 add_head_cb, add_head_data, \
186 p_decode_key, pri_data, field_flags) \
187 http_inf_client_post_field_session(url, callback, data, len, \
188 add_head_cb, add_head_data, \
189 p_decode_key, pri_data, field_flags, FALSE)
191#define http_inf_client_post_session(url, callback, data, len, \
192 add_head_cb, add_head_data, \
193 p_decode_key, pri_data, session_persistence) \
194 http_inf_client_post_field_session(url, callback, data, len, \
195 add_head_cb, add_head_data, \
196 p_decode_key, pri_data, \
197 STANDARD_HDR_FLAGS|HDR_ADD_CONN_KEEP_ALIVE|HDR_ADD_CONTENT_TYPE_FORM_URLENCODE, \
218 IN CONST BYTE_T *data,
220 IN HTTP_HEAD_ADD_CB add_head_cb,
221 IN VOID* add_head_data,
222 IN CONST CHAR_T *p_decode_key,
223 INOUT PVOID_T *pri_data,
225 IN BOOL_T session_persistence);
227#define http_inf_client_post_raw(url, len, p_inf) \
228 http_inf_client_post_raw_field(url, len, p_inf, \
229 HRD_ADD_HTTP_RAW | STANDARD_HDR_FLAGS | HDR_ADD_CONN_KEEP_ALIVE | HDR_ADD_CONTENT_TYPE_JSON)
256#define http_inf_client_get_raw(url, p_inf, offset, total_len) \
257 http_inf_client_get_raw_with_head(url, p_inf, offset, total_len, NULL, NULL)
273 IN UINT_T offset, IN UINT_T total_len,
274 IN HTTP_HEAD_ADD_CB add_head_cb,
275 IN VOID* add_head_data);
286#define http_inf_client_put_raw(url, len, p_inf) \
287 http_inf_client_put_raw_field(url, len, p_inf, NULL, NULL)
303 IN HTTP_HEAD_ADD_CB add_head_cb,
304 IN VOID* add_head_data);
317 IN CONST BYTE_T *p_data,
365 IN CONST BYTE_T *data,
367 IN HTTP_HEAD_ADD_CB add_head_cb,
368 IN VOID* add_head_data,
369 INOUT PVOID_T *pri_data);
386 IN CONST BYTE_T *data,
388 IN HTTP_HEAD_ADD_CB add_head_cb,
389 IN VOID* add_head_data,
390 INOUT PVOID_T *pri_data);
407 IN HTTP_HEAD_ADD_CB add_head_cb, IN VOID* add_head_data,
408 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_post_field_session(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, IN BOOL_T session_persistence)
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
OPERATE_RET http_inf_client_set_session_timeout(IN UINT16_T timeout_ms)
This API is used to set the global default session timeout
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_session(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, IN BOOL_T session_persistence)
This API is used to GET HTTP file
OPERATE_RET http_inf_com_hanle_with_tls_config(IN CONST http_req_t *req, IN CONST CHAR_T *url, IN CONST tuya_tls_config_t *tls_config, IN CONST http_hdr_field_sel_t field_flags, IN CONST HTTP_INF_CB callback, IN CONST CHAR_T *p_decode_key, INOUT PVOID_T *pri_data)
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
http_hdr_field_sel_t
Definition: httpc.h:95
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
Definition: tuya_tls.h:45