httpd 模块
httpd服务
class dhcp
static s_option(esp_netif: pointer, opt_op: uint, opt_id: uint, opt_val: pointer, opt_len: int) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
esp_netif | pointer | |
opt_op | uint | |
opt_id | uint | |
opt_val | pointer | |
opt_len | int |
- 返回:
int
esp_netif_dhcps_optionstatic c_option(esp_netif: pointer, opt_op: uint, opt_id: uint, opt_val: pointer, opt_len: int) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
esp_netif | pointer | |
opt_op | uint | |
opt_id | uint | |
opt_val | pointer | |
opt_len | int |
- 返回:
int
esp_netif_dhcpc_optionstatic c_start(esp_netif: pointer) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
esp_netif | pointer |
- 返回:
int
esp_netif_dhcpc_startstatic c_get_status(esp_netif: pointer, status: pointer) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
esp_netif | pointer | |
status | pointer |
- 返回:
int
esp_netif_dhcpc_get_statusstatic s_get_status(esp_netif: pointer, status: pointer) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
esp_netif | pointer | |
status | pointer |
- 返回:
int
esp_netif_dhcps_get_statusstatic s_start(esp_netif: pointer) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
esp_netif | pointer |
- 返回:
int
esp_netif_dhcps_startstatic s_get_clients_by_mac(esp_netif: pointer, num: int, mac_ip_pair: pointer) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
esp_netif | pointer | |
num | int | |
mac_ip_pair | pointer |
- 返回:
int
esp_netif_dhcps_get_clients_by_macclass smartconfig
static start(config: pointer) -> int
config是C结构smartconfig_start_config_t的实例
| 参数 | 类型 | 说明 |
|---|---|---|
config | pointer |
- 返回:
int
esp_smartconfig_startstatic set_timeout(timeout_sec: int) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
timeout_sec | int |
- 返回:
int
esp_esptouch_set_timeoutstatic get_rvd_data(data: pointer, len: uint) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
data | pointer | |
len | uint |
- 返回:
int
esp_smartconfig_get_rvd_datastatic init_config() -> str
使用HTTPD_DEFAULT_CONFIG()宏对httpd_config_t结构体进行默认初始化,在此基础之上,还增加了如下项的设置: uri_match_fn = httpd_uri_match_wildcard // httpd_uri_match_wildcard函数是IDF框架内置的URI匹配函数 max_uri_handlers = 28 // 这决定了一共可以有多少个URI匹配可以被注册,默认设置了28个。根据你实际调用register_uri_handler和register_uri_handlers注册的总数量,要修改成正确的数字
- 返回:
str
static start(handle: pointer, config: pointer) -> int
开启httpd server
handle: 需要使用malloc()做默认分配,得到正确返回后再使用frompointer取出真实的句柄
| 参数 | 类型 | 说明 |
|---|---|---|
handle | pointer | |
config | pointer |
- 返回:
int
httpd_startstatic stop(handle: pointer) -> int
停止httpd server
handle: 由start函数创建的httpd server句柄,也就是start函数的参数1返回的句柄
| 参数 | 类型 | 说明 |
|---|---|---|
handle | pointer |
- 返回:
int
httpd_stopstatic register_uri_handlers(handle: pointer, uri_handlers: list, captive_portal_uri: str) -> str
本函数是一个扩展函数,是本平台提供的函数,他可以省去逐个调用register_uri_handler注册URI匹配响应函数的过程,使用一个list一次构造多个响应callback进行注册 handle: 由start函数创建的httpd server句柄 uri_handlers: 样例:[ { "uri": "/", "method": httpd_method_get, "handler": handler_fn } ] 其中,handler_fn函数就是当匹配URI之后的回调函数,该函数有一个参数,为请求句柄,是一个pointer类型,该函数返回值很关键,可以支持以下形式:
- string或bytes:字符串或bytes,会自动进行httpd_resp_send()发送给客户端,一般这个字符串是text或html格式
- tuple: (content_type, string_or_bytes_data) 两个成员的元组,第1个为Content-Type,第二个是要发送的内容
但总的注册的uri handlers总数量不要超过240个
captive_portal_uri参数可以为None,如果不为None则必须提供一个URL,用于当用户连接上本AP时使用302自动跳转到captive_portal_uri指定的URL,这样就可以实现连接AP自动跳转页面
| 参数 | 类型 | 说明 |
|---|---|---|
handle | pointer | |
uri_handlers | list | |
captive_portal_uri | str |
- 返回:
str
static unregister_uri_handlers(handlers: pointer) -> str
取消注册由register_uri_handlers注册的所有URI匹配 handlers: register_uri_handlers函数的返回值
| 参数 | 类型 | 说明 |
|---|---|---|
handlers | pointer |
- 返回:
str
httpd_unregister_uri_handlersstatic get_req_data(req: pointer, item_name: str) -> str
| 参数 | 类型 | 说明 |
|---|---|---|
req | pointer | |
item_name | str |
- 返回:
str
httpd_get_req_datastatic register_uri_handler(handle: pointer, uri_handler: pointer) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
handle | pointer | |
uri_handler | pointer |
- 返回:
int
httpd_register_uri_handlerstatic unregister_uri_handler(handle: pointer, uri: str, method: pointer) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
handle | pointer | |
uri | str | |
method | pointer |
- 返回:
int
httpd_unregister_uri_handlerstatic unregister_uri(handle: pointer, uri: str) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
handle | pointer | |
uri | str |
- 返回:
int
httpd_unregister_uristatic register_err_handler(handle: pointer, error: pointer, handler_fn: pointer) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
handle | pointer | |
error | pointer | |
handler_fn | pointer |
- 返回:
int
httpd_register_err_handlerstatic sess_set_recv_override(hd: void, sockfd: int, recv_func: pointer) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
hd | void | |
sockfd | int | |
recv_func | pointer |
- 返回:
int
httpd_sess_set_recv_overridestatic sess_set_send_override(hd: void, sockfd: int, send_func: pointer) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
hd | void | |
sockfd | int | |
send_func | pointer |
- 返回:
int
httpd_sess_set_send_overridestatic sess_set_pending_override(hd: void, sockfd: int, pending_func: pointer) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
hd | void | |
sockfd | int | |
pending_func | pointer |
- 返回:
int
httpd_sess_set_pending_overridestatic req_async_handler_begin(req: pointer, out: pointer) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
req | pointer | |
out | pointer |
- 返回:
int
httpd_req_async_handler_beginstatic req_async_handler_complete(req: pointer) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
req | pointer |
- 返回:
int
httpd_req_async_handler_completestatic req_recv(req: pointer, buf: str, buf_len: int) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
req | pointer | |
buf | str | |
buf_len | int |
- 返回:
int
httpd_req_recvstatic req_get_hdr_value_len(req: pointer, field: str) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
req | pointer | |
field | str |
- 返回:
int
httpd_req_get_hdr_value_lenstatic req_get_hdr_value_str(req: pointer, field: str, val: str, val_size: int) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
req | pointer | |
field | str | |
val | str | |
val_size | int |
- 返回:
int
httpd_req_get_hdr_value_strstatic req_get_url_query_len(req: pointer) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
req | pointer |
- 返回:
int
httpd_req_get_url_query_lenstatic req_get_url_query_str(req: pointer, buf: str, buf_len: int) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
req | pointer | |
buf | str | |
buf_len | int |
- 返回:
int
httpd_req_get_url_query_strstatic query_key_value(qry: str, key: str, val: str, val_size: int) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
qry | str | |
key | str | |
val | str | |
val_size | int |
- 返回:
int
httpd_query_key_valuestatic req_get_cookie_val(req: pointer, cookie_name: str, val: str, val_size: pointer) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
req | pointer | |
cookie_name | str | |
val | str | |
val_size | pointer |
- 返回:
int
httpd_req_get_cookie_valstatic uri_match_wildcard(uri_template: str, uri_to_match: str, match_upto: int) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
uri_template | str | |
uri_to_match | str | |
match_upto | int |
- 返回:
int
httpd_uri_match_wildcardstatic resp_send(req: pointer, buf: str, buf_len: int) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
req | pointer | |
buf | str | |
buf_len | int |
- 返回:
int
httpd_resp_sendstatic resp_send_chunk(req: pointer, buf: str, buf_len: int) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
req | pointer | |
buf | str | |
buf_len | int |
- 返回:
int
httpd_resp_send_chunkstatic resp_set_status(req: pointer, status: str) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
req | pointer | |
status | str |
- 返回:
int
httpd_resp_set_statusstatic resp_set_type(req: pointer, type: str) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
req | pointer | |
type | str |
- 返回:
int
httpd_resp_set_typestatic resp_set_hdr(req: pointer, field: str, value: str) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
req | pointer | |
field | str | |
value | str |
- 返回:
int
httpd_resp_set_hdrstatic resp_send_err(req: pointer, error: pointer, msg: str) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
req | pointer | |
error | pointer | |
msg | str |
- 返回:
int
httpd_resp_send_errstatic resp_send_custom_err(req: pointer, status: str, msg: str) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
req | pointer | |
status | str | |
msg | str |
- 返回:
int
httpd_resp_send_custom_errstatic send(req: pointer, buf: str, buf_len: int) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
req | pointer | |
buf | str | |
buf_len | int |
- 返回:
int
httpd_sendstatic socket_send(hd: void, sockfd: int, buf: str, buf_len: int, flags: int) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
hd | void | |
sockfd | int | |
buf | str | |
buf_len | int | |
flags | int |
- 返回:
int
httpd_socket_sendstatic socket_recv(hd: void, sockfd: int, buf: str, buf_len: int, flags: int) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
hd | void | |
sockfd | int | |
buf | str | |
buf_len | int | |
flags | int |
- 返回:
int
httpd_socket_recvstatic sess_set_ctx(handle: pointer, sockfd: int, ctx: void, free_fn: pointer) -> None
| 参数 | 类型 | 说明 |
|---|---|---|
handle | pointer | |
sockfd | int | |
ctx | void | |
free_fn | pointer |
- 返回:
None
static sess_set_transport_ctx(handle: pointer, sockfd: int, ctx: void, free_fn: pointer) -> None
| 参数 | 类型 | 说明 |
|---|---|---|
handle | pointer | |
sockfd | int | |
ctx | void | |
free_fn | pointer |
- 返回:
None
static sess_trigger_close(handle: pointer, sockfd: int) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
handle | pointer | |
sockfd | int |
- 返回:
int
httpd_sess_trigger_closestatic sess_update_lru_counter(handle: pointer, sockfd: int) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
handle | pointer | |
sockfd | int |
- 返回:
int
httpd_sess_update_lru_counterstatic get_client_list(handle: pointer, fds: pointer, client_fds: int) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
handle | pointer | |
fds | pointer | |
client_fds | int |
- 返回:
int
httpd_get_client_liststatic queue_work(handle: pointer, work: pointer, arg: void) -> int
| 参数 | 类型 | 说明 |
|---|---|---|
handle | pointer | |
work | pointer | |
arg | void |
- 返回:
int
httpd_queue_work