Skip to content

httpd 模块

httpd服务

class dhcp

static s_option(esp_netif: pointer, opt_op: uint, opt_id: uint, opt_val: pointer, opt_len: int) -> int

参数类型说明
esp_netifpointer
opt_opuint
opt_iduint
opt_valpointer
opt_lenint
  • 返回: int
C++ 映射 esp_netif_dhcps_option

static c_option(esp_netif: pointer, opt_op: uint, opt_id: uint, opt_val: pointer, opt_len: int) -> int

参数类型说明
esp_netifpointer
opt_opuint
opt_iduint
opt_valpointer
opt_lenint
  • 返回: int
C++ 映射 esp_netif_dhcpc_option

static c_start(esp_netif: pointer) -> int

参数类型说明
esp_netifpointer
  • 返回: int
C++ 映射 esp_netif_dhcpc_start

static c_stop(esp_netif: pointer) -> int

参数类型说明
esp_netifpointer
  • 返回: int
C++ 映射 esp_netif_dhcpc_stop

static c_get_status(esp_netif: pointer, status: pointer) -> int

参数类型说明
esp_netifpointer
statuspointer
  • 返回: int
C++ 映射 esp_netif_dhcpc_get_status

static s_get_status(esp_netif: pointer, status: pointer) -> int

参数类型说明
esp_netifpointer
statuspointer
  • 返回: int
C++ 映射 esp_netif_dhcps_get_status

static s_start(esp_netif: pointer) -> int

参数类型说明
esp_netifpointer
  • 返回: int
C++ 映射 esp_netif_dhcps_start

static s_stop(esp_netif: pointer) -> int

参数类型说明
esp_netifpointer
  • 返回: int
C++ 映射 esp_netif_dhcps_stop

static s_get_clients_by_mac(esp_netif: pointer, num: int, mac_ip_pair: pointer) -> int

参数类型说明
esp_netifpointer
numint
mac_ip_pairpointer
  • 返回: int
C++ 映射 esp_netif_dhcps_get_clients_by_mac

class smartconfig

static start(config: pointer) -> int

config是C结构smartconfig_start_config_t的实例

参数类型说明
configpointer
  • 返回: int
C++ 映射 esp_smartconfig_start

static stop() -> int

  • 返回: int
C++ 映射 esp_smartconfig_stop

static set_timeout(timeout_sec: int) -> int

参数类型说明
timeout_secint
  • 返回: int
C++ 映射 esp_esptouch_set_timeout

static set_type(type: uint) -> int

参数类型说明
typeuint
  • 返回: int
C++ 映射 esp_smartconfig_set_type

static fast_mode(enable: bool) -> int

参数类型说明
enablebool
  • 返回: int
C++ 映射 esp_smartconfig_fast_mode

static get_rvd_data(data: pointer, len: uint) -> int

参数类型说明
datapointer
lenuint
  • 返回: int
C++ 映射 esp_smartconfig_get_rvd_data

static 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取出真实的句柄

参数类型说明
handlepointer
configpointer
  • 返回: int
C++ 映射 httpd_start

static stop(handle: pointer) -> int

停止httpd server

handle: 由start函数创建的httpd server句柄,也就是start函数的参数1返回的句柄

参数类型说明
handlepointer
  • 返回: int
C++ 映射 httpd_stop

static 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类型,该函数返回值很关键,可以支持以下形式:

  1. string或bytes:字符串或bytes,会自动进行httpd_resp_send()发送给客户端,一般这个字符串是text或html格式
  2. 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自动跳转页面

参数类型说明
handlepointer
uri_handlerslist
captive_portal_uristr
  • 返回: str

static unregister_uri_handlers(handlers: pointer) -> str

取消注册由register_uri_handlers注册的所有URI匹配 handlers: register_uri_handlers函数的返回值

参数类型说明
handlerspointer
  • 返回: str
C++ 映射 httpd_unregister_uri_handlers

static get_req_data(req: pointer, item_name: str) -> str

参数类型说明
reqpointer
item_namestr
  • 返回: str
C++ 映射 httpd_get_req_data

static register_uri_handler(handle: pointer, uri_handler: pointer) -> int

参数类型说明
handlepointer
uri_handlerpointer
  • 返回: int
C++ 映射 httpd_register_uri_handler

static unregister_uri_handler(handle: pointer, uri: str, method: pointer) -> int

参数类型说明
handlepointer
uristr
methodpointer
  • 返回: int
C++ 映射 httpd_unregister_uri_handler

static unregister_uri(handle: pointer, uri: str) -> int

参数类型说明
handlepointer
uristr
  • 返回: int
C++ 映射 httpd_unregister_uri

static register_err_handler(handle: pointer, error: pointer, handler_fn: pointer) -> int

参数类型说明
handlepointer
errorpointer
handler_fnpointer
  • 返回: int
C++ 映射 httpd_register_err_handler

static sess_set_recv_override(hd: void, sockfd: int, recv_func: pointer) -> int

参数类型说明
hdvoid
sockfdint
recv_funcpointer
  • 返回: int
C++ 映射 httpd_sess_set_recv_override

static sess_set_send_override(hd: void, sockfd: int, send_func: pointer) -> int

参数类型说明
hdvoid
sockfdint
send_funcpointer
  • 返回: int
C++ 映射 httpd_sess_set_send_override

static sess_set_pending_override(hd: void, sockfd: int, pending_func: pointer) -> int

参数类型说明
hdvoid
sockfdint
pending_funcpointer
  • 返回: int
C++ 映射 httpd_sess_set_pending_override

static req_async_handler_begin(req: pointer, out: pointer) -> int

参数类型说明
reqpointer
outpointer
  • 返回: int
C++ 映射 httpd_req_async_handler_begin

static req_async_handler_complete(req: pointer) -> int

参数类型说明
reqpointer
  • 返回: int
C++ 映射 httpd_req_async_handler_complete

static req_to_sockfd(req: pointer) -> int

参数类型说明
reqpointer
  • 返回: int
C++ 映射 httpd_req_to_sockfd

static req_recv(req: pointer, buf: str, buf_len: int) -> int

参数类型说明
reqpointer
bufstr
buf_lenint
  • 返回: int
C++ 映射 httpd_req_recv

static req_get_hdr_value_len(req: pointer, field: str) -> int

参数类型说明
reqpointer
fieldstr
  • 返回: int
C++ 映射 httpd_req_get_hdr_value_len

static req_get_hdr_value_str(req: pointer, field: str, val: str, val_size: int) -> int

参数类型说明
reqpointer
fieldstr
valstr
val_sizeint
  • 返回: int
C++ 映射 httpd_req_get_hdr_value_str

static req_get_url_query_len(req: pointer) -> int

参数类型说明
reqpointer
  • 返回: int
C++ 映射 httpd_req_get_url_query_len

static req_get_url_query_str(req: pointer, buf: str, buf_len: int) -> int

参数类型说明
reqpointer
bufstr
buf_lenint
  • 返回: int
C++ 映射 httpd_req_get_url_query_str

static query_key_value(qry: str, key: str, val: str, val_size: int) -> int

参数类型说明
qrystr
keystr
valstr
val_sizeint
  • 返回: int
C++ 映射 httpd_query_key_value
参数类型说明
reqpointer
cookie_namestr
valstr
val_sizepointer
  • 返回: int
C++ 映射 httpd_req_get_cookie_val

static uri_match_wildcard(uri_template: str, uri_to_match: str, match_upto: int) -> int

参数类型说明
uri_templatestr
uri_to_matchstr
match_uptoint
  • 返回: int
C++ 映射 httpd_uri_match_wildcard

static resp_send(req: pointer, buf: str, buf_len: int) -> int

参数类型说明
reqpointer
bufstr
buf_lenint
  • 返回: int
C++ 映射 httpd_resp_send

static resp_send_chunk(req: pointer, buf: str, buf_len: int) -> int

参数类型说明
reqpointer
bufstr
buf_lenint
  • 返回: int
C++ 映射 httpd_resp_send_chunk

static resp_set_status(req: pointer, status: str) -> int

参数类型说明
reqpointer
statusstr
  • 返回: int
C++ 映射 httpd_resp_set_status

static resp_set_type(req: pointer, type: str) -> int

参数类型说明
reqpointer
typestr
  • 返回: int
C++ 映射 httpd_resp_set_type

static resp_set_hdr(req: pointer, field: str, value: str) -> int

参数类型说明
reqpointer
fieldstr
valuestr
  • 返回: int
C++ 映射 httpd_resp_set_hdr

static resp_send_err(req: pointer, error: pointer, msg: str) -> int

参数类型说明
reqpointer
errorpointer
msgstr
  • 返回: int
C++ 映射 httpd_resp_send_err

static resp_send_custom_err(req: pointer, status: str, msg: str) -> int

参数类型说明
reqpointer
statusstr
msgstr
  • 返回: int
C++ 映射 httpd_resp_send_custom_err

static send(req: pointer, buf: str, buf_len: int) -> int

参数类型说明
reqpointer
bufstr
buf_lenint
  • 返回: int
C++ 映射 httpd_send

static socket_send(hd: void, sockfd: int, buf: str, buf_len: int, flags: int) -> int

参数类型说明
hdvoid
sockfdint
bufstr
buf_lenint
flagsint
  • 返回: int
C++ 映射 httpd_socket_send

static socket_recv(hd: void, sockfd: int, buf: str, buf_len: int, flags: int) -> int

参数类型说明
hdvoid
sockfdint
bufstr
buf_lenint
flagsint
  • 返回: int
C++ 映射 httpd_socket_recv

static sess_set_ctx(handle: pointer, sockfd: int, ctx: void, free_fn: pointer) -> None

参数类型说明
handlepointer
sockfdint
ctxvoid
free_fnpointer
  • 返回: None

static sess_set_transport_ctx(handle: pointer, sockfd: int, ctx: void, free_fn: pointer) -> None

参数类型说明
handlepointer
sockfdint
ctxvoid
free_fnpointer
  • 返回: None

static sess_trigger_close(handle: pointer, sockfd: int) -> int

参数类型说明
handlepointer
sockfdint
  • 返回: int
C++ 映射 httpd_sess_trigger_close

static sess_update_lru_counter(handle: pointer, sockfd: int) -> int

参数类型说明
handlepointer
sockfdint
  • 返回: int
C++ 映射 httpd_sess_update_lru_counter

static get_client_list(handle: pointer, fds: pointer, client_fds: int) -> int

参数类型说明
handlepointer
fdspointer
client_fdsint
  • 返回: int
C++ 映射 httpd_get_client_list

static queue_work(handle: pointer, work: pointer, arg: void) -> int

参数类型说明
handlepointer
workpointer
argvoid
  • 返回: int
C++ 映射 httpd_queue_work

基于 llpython ESP 平台构建