acl
3.5.3.0
|
宏定义 | |
#define | http_req_body_get_sync2 http_req_body_get_sync |
#define | http_res_body_get_sync2 http_res_body_get_sync |
#define | HTTP_CHAT_SYNC_CTL_END 0 |
#define | HTTP_CHAT_CTL_BUFF_ONOFF 1 |
变量 | |
HTTP_API void const char * | name |
HTTP_API void const char const char * | fmt |
#define HTTP_CHAT_CTL_BUFF_ONOFF 1 |
是否打开数据接收时的预缓冲策略
在文件 lib_http.h 第 557 行定义.
#define HTTP_CHAT_SYNC_CTL_END 0 |
结束标志位
在文件 lib_http.h 第 556 行定义.
#define http_req_body_get_sync2 http_req_body_get_sync |
在文件 lib_http.h 第 524 行定义.
#define http_res_body_get_sync2 http_res_body_get_sync |
在文件 lib_http.h 第 539 行定义.
向通用HTTP头中添加数据
hdr | {HTTP_HDR*} 通用HTTP头对象 |
name | {const char*} 变量名,如 Accept-Encoding: deflate, gzip 中的 Accept-Encoding |
fmt | {const char*} 变参格式字符串 |
HTTP_API http_off_t http_buf_size_get | ( | void | ) |
获得进行 HTTP 协议体数据传输时的缓冲区大小
HTTP_API void http_buf_size_set | ( | http_off_t | size | ) |
设置在进行 HTTP 协议体数据传输时的缓冲区大小
size | {http_off_t} 缓冲区大小 |
设置请求协议的控制标志位
request | {HTTP_REQ*} HTTP请求体类型指针, 不能为空, 且 request->hdr 为空 |
name | {int} 第一个标志位,当最后一个标志位为 HTTP_CHAT_SYNC_CTL_END 时 表示结束 |
设置响应协议的控制标志位
respond | {HTTP_RES*} HTTP响应体类型指针, 不能为空, 且 respond->hdr 为空 |
name | {int} 第一个标志位,当最后一个标志位为 HTTP_CHAT_SYNC_CTL_END 时 表示结束 |
HTTP_API void http_hdr_append_entry | ( | HTTP_HDR * | hh, |
HTTP_HDR_ENTRY * | entry | ||
) |
向 HTTP_HDR 头中增加一个条目
hh | {HTTP_HDR*} 通用头类型的数据指针,不能为空 |
entry | {HTTP_HDR_ENTRY*} HTTP头条目结构指针, 不能为空 |
HTTP_API void http_hdr_build | ( | const HTTP_HDR * | hdr, |
ACL_VSTRING * | strbuf | ||
) |
根据HTTP通用头生成头的完整内容于BUF中
hdr | {const HTTP_HDR*} 通用HTTP头 |
strbuf | {ACL_VSTRING*} 存储结果的缓冲区 |
HTTP_API void http_hdr_build_request | ( | const HTTP_HDR_REQ * | hdr_req, |
ACL_VSTRING * | strbuf | ||
) |
根据HTTP请求头生成请求头内容于BUF中
hdr_req | {const HTTP_HDR_REQ*} HTTP请求头 |
strbuf | {ACL_VSTRING*} 存储结果的缓冲区 |
HTTP_API void http_hdr_cache | ( | int | max | ) |
是否自动缓冲被释放的 HTTP 头对象,从而使其内存可以重复使用, 该函数在程序初始化 时只能被调用一次
max | {int} 当该值 > 0 时便自动启用 HTTP 头对象缓冲功能 |
从源HTTP通用头拷贝内部成员变量至一个新的HTTP通用头结构中
src | {const HTTP_HDR*} 源HTTP通用头对象,不能为空 |
dst | {HTTP_HDR*} 目的HTTP通用头对象,不能为空 |
HTTP_API HTTP_HDR_ENTRY* http_hdr_entry | ( | const HTTP_HDR * | hh, |
const char * | name | ||
) |
获取一个 HTTP_HDR_ENTRY 条目
hh | {HTTP_HDR*} 通用HTTP头类型的数据指针,不能为空 |
name | {const char*} 该 HTTP_HDR_ENTRY 条目的标识名, 不能为空. 如: Content-Length. |
HTTP_API HTTP_HDR_ENTRY* http_hdr_entry_build | ( | const char * | name, |
const char * | value | ||
) |
由传入的 name, value 对产生一个 HTTP_HDR_ENTRY 对象
name | {const char*} 变量名 |
value | {const char*} 变量值 |
HTTP_API HTTP_HDR_ENTRY* http_hdr_entry_head | ( | char * | data | ) |
HTTP_API HTTP_HDR_ENTRY* http_hdr_entry_new | ( | const char * | data | ) |
根据传入的一行数据进行分析, 生成一个 HTTP_HDR_ENTRY
data | {const char*} HTTP 协议头中的一行数据, 如: Content-Length: 200 |
HTTP_API HTTP_HDR_ENTRY* http_hdr_entry_new2 | ( | char * | data | ) |
禁止HTTP协议头中的某项
hh | {HTTP_HDR* } 通用HTTP头类型的数据指针,不能为空 |
name | {const char*} 该 HTTP_HDR_ENTRY 条目的标识名, 不能为空. 如: Content-Length |
HTTP_API int http_hdr_entry_replace | ( | HTTP_HDR * | hh, |
const char * | name, | ||
const char * | value, | ||
int | force | ||
) |
将 HTTP 头中的某个字段进行替换, 该功能起初主要是为了实现 keep-alive 字段的替换
hh | {HTTP_HDR*} 通用HTTP头类型的数据指针,不能为空 |
name | {const char*} 该 HTTP_HDR_ENTRY 条目的标识名, 不能为空. 如: Content-Length |
value | {const char*} 该 name 字段所对应的新的值 |
force | {int} 如果所替换的字段在原始HTTP请求里不存在, 则强行产生新的 entry 字段并 填至该请求头, 当该值为非0值时进行强行添加, 否则若该name在请求里不存在则不添加. |
HTTP_API int http_hdr_entry_replace2 | ( | HTTP_HDR * | hh, |
const char * | name, | ||
const char * | from, | ||
const char * | to, | ||
int | ignore_case | ||
) |
将 HTTP 头中的某个字段中包含某个字符串的源字符串进行替换, 可以支持多次匹配替换
hh | {HTTP_HDR*} 通用HTTP头类型的数据指针,不能为空 |
name | {const char*} 该 HTTP_HDR_ENTRY 条目的标识名, 不能为空. 如: Cookie |
from | {const char*} 替换时的源字符串 |
to | {const char*} 替换时的目标字符串 |
ignore_case | {int} 在查找替换时是否忽略源字符串的大小写 |
获取HTTP协议头里某个实体头的变量值,如某个实体头为:Host: www.test.com 要获得 Host 变量的值,调用该函数后便可以取得 www.test.com
hh | {HTTP_HDR*} 通用HTTP头类型的数据指针,不能为空 |
name | {const char*} 该 HTTP_HDR_ENTRY 条目的标识名, 不能为空. 如: Content-Length |
HTTP_API void http_hdr_fprint | ( | ACL_VSTREAM * | fp, |
const HTTP_HDR * | hh, | ||
const char * | msg | ||
) |
调试输出HTTP协议头部数据,调试类接口
fp | {ACL_VSTREAM*} 某个流指针,输出结果将会定向至该数据流(可以为网络流或文件流) |
hh | {HTTP_HDR*} 通用HTTP头类型的数据指针,不能为空 |
msg | {const char*} 用户希望与头部信息一起输出的自定义信息, 可以为空 |
释放一个HTTP_HDR结构内存
hh | {HTTP_HDR*} 类型的数据指针,不能为空 |
生成一个通用HTTP协议头的结构对象
size | {size_t} 所需分配内存大小, 等于 HTTP_HDR_REQ 或 HTTP_HDR_RES 的尺寸 |
分析所有的通用HTTP协议头并存储在 hh 结构中
hh | {HTTP_HDR*} 通用HTTP头类型的数据指针,不能为空 |
分析所给数据, 解析出协议, 主/次版本号,并将结果存在通用HTTP头结构内
hh | {HTTP_HDR*} 类型的数据指针,不能为空 |
data | {const char*} 数据格式须为: HTTP/1.0 |
调试输出HTTP协议头部数据,调试类接口
hh | {HTTP_HDR*} 通用HTTP头类型的数据指针,不能为空 |
msg | {const char*} 用户希望与头部信息一起输出的自定义信息, 可以为空 |
向通用HTTP头中添加数据
hdr | {HTTP_HDR*} 通用HTTP头对象 |
name | {const char*} 变量名,如 Content-Length: 1024 中的 Conteng-Length |
value | {const int} 变量值,如 Content-Length: 1024 中的 1024 |
向通用HTTP头中添加数据
hdr | {HTTP_HDR*} 通用HTTP头对象 |
name | {const char*} 变量名,如 Accept-Encoding: deflate, gzip 中的 Accept-Encoding |
value | {const char*} 变量值,如 Accept-Encoding: deflate, gzip 中的 deflate, gzip |
HTTP_API void const char const char HTTP_API void http_hdr_put_time | ( | HTTP_HDR * | hdr, |
const char * | name, | ||
time_t | t | ||
) |
向通用HTTP头中添加时间数据
hdr | {HTTP_HDR*} 通用HTTP头对象 |
name | {const char*} 变量名 |
t | {time_t} 时间值 |
HTTP_API HTTP_HDR_REQ* http_hdr_req_clone | ( | const HTTP_HDR_REQ * | hdr_req | ) |
克隆一个HTTP请求头对象,但不复制其中的 chat_ctx, chat_free_ctx_fn 两个成员变量
hdr_req | {const HTTP_HDR_REQ*} HTTP请求头对象 |
HTTP_API const char* http_hdr_req_cookie_get | ( | HTTP_HDR_REQ * | hh, |
const char * | name | ||
) |
从HTTP请求头中获得某个cookie值
hh | {HTTP_HDR_REQ*) HTTP请求头类型的数据指针,不能为空 |
name | {const char*} 某个cookie的变量名, 不能为空 |
HTTP_API int http_hdr_req_cookies_parse | ( | HTTP_HDR_REQ * | hh | ) |
分析HTTP协议头的cookies
hh | {HTTP_HDR_REQ*} HTTP请求头类型的数据指针,不能为空 |
HTTP_API HTTP_HDR_REQ* http_hdr_req_create | ( | const char * | url, |
const char * | method, | ||
const char * | version | ||
) |
根据请求的URL,请求的方法,HTTP版本创建一个HTTP请求头对象
url | {const char*} 请求的URL,必须是完整的URL,如: http://www.test.com/path/proc?name=value http://www.test.com/path/proc http://www.test.com/ |
method | {const char*} HTTP请求方法,必须为如下之一: GET, POST, CONNECT, HEAD, 且要注意必须都为大写 |
version | {const char *} HTTP版本,必须为如下之一: HTTP/1.0, HTTP/1.1 |
HTTP_API void http_hdr_req_free | ( | HTTP_HDR_REQ * | hh | ) |
HTTP_API void http_hdr_req_get_async | ( | HTTP_HDR_REQ * | hdr, |
ACL_ASTREAM * | astream, | ||
HTTP_HDR_NOTIFY | notify, | ||
void * | arg, | ||
int | timeout | ||
) |
异步获取一个HTTP REQUEST协议头,数据结果存储在hdr中, 当取得一个完整的HTTP头或 出错时调用用户的注册函数 notify
hdr | {HTTP_HDR_REQ*} HTTP请求头类型结构指针,不能为空 |
astream | {ACL_ASTREAM*} 与客户端连接的数据流, 不能为空 |
notify | {HTTP_HDR_NOTIFY} 当HTTP协议头读完或出错时调用的用户的注册函数 |
arg | {void*} notify 调用时的一个参数 |
timeout | {int} 接收数据过程中的读超时时间 |
HTTP_API int http_hdr_req_get_sync | ( | HTTP_HDR_REQ * | hdr, |
ACL_VSTREAM * | stream, | ||
int | timeout | ||
) |
同步获取一个HTTP REQUEST协议头,数据结果存储在hdr中, 当取得一个完整的HTTP头或 出错时调用用户的注册函数 notify
hdr | {HTTP_HDR_REQ*} HTTP请求头类型结构指针,不能为空 |
stream | {ACL_VSTREAM*} 与客户端连接的数据流, 不能为空 |
timeout | {int} 接收数据过程中的读超时时间 |
HTTP_API const char* http_hdr_req_host | ( | const HTTP_HDR_REQ * | hh | ) |
从HTTP请求协议头中获得服务器的主机IP或域名,格式为:IP|domain[:PORT] 如: 192.168.0.22:80, or www.test.com:8088
hh | {const HTTP_HDR_REQ*} HTTP请求头类型的数据指针,不能为空 |
HTTP_API int http_hdr_req_line_parse | ( | HTTP_HDR_REQ * | hh | ) |
分析HTTP请求首行数据(如: GET /cgi-bin/test.cgi?name=value&name2=value2 HTTP/1.0) 请求的方法(GET)-->hdr_request_method URL数据分析结果(name=value)-->hdr_request_table HTTP协议版本号(HTTP/1.0)-->hdr_request_proto URL数据中的路径部分(/cgi-bin/test.cgi)-->hdr_request_url
hh | {HTTP_HDR_REQ*} HTTP请求头类型的数据指针,不能为空 |
HTTP_API const char* http_hdr_req_method | ( | const HTTP_HDR_REQ * | hh | ) |
从HTTP请求头中取得HTTP请求的方法, 如: POST, GET, CONNECT
hh | {const HTTP_HDR_REQ*} HTTP请求头类型的数据指针,不能为空 |
HTTP_API HTTP_HDR_REQ* http_hdr_req_new | ( | void | ) |
分配一个请求的HTTP协议头对象
HTTP_API const char* http_hdr_req_param | ( | const HTTP_HDR_REQ * | hh, |
const char * | name | ||
) |
从HTTP请求头中获取请求URL中某个请求字段的数据, 如取: /cgi-bin/test.cgi?n1=v1&n2=v2 中的 n2的值v2
hh | {const HTTP_HDR_REQ*} HTTP请求头类型的数据指针,不能为空 |
name | {const char*} 请求参数中的变量名 |
HTTP_API int http_hdr_req_parse | ( | HTTP_HDR_REQ * | hh | ) |
分析HTTP请求头协议数据, 其内部会调用 http_hdr_req_line_parse, http_hdr_req_cookies_parse
hh | {HTTP_HDR_REQ*} HTTP请求头类型的数据指针,不能为空 |
HTTP_API int http_hdr_req_parse3 | ( | HTTP_HDR_REQ * | hh, |
int | parse_params, | ||
int | parse_cookie | ||
) |
分析HTTP请求头协议数据, 其内部会调用 http_hdr_req_line_parse, http_hdr_req_cookies_parse 如果 parse_params 非 0 则分析HTTP请求 url 中的参数部分; 如果 parse_cookie 非 0 则分析 HTTP请求中的 cookie 内容
hh | {HTTP_HDR_REQ*} HTTP请求头类型的数据指针,不能为空 |
parse_params | {int} 是否分析请求 url 中的参数部分 |
parse_cookie | {int} 是否分析请求中的 cookie 内容 |
HTTP_API int http_hdr_req_range | ( | const HTTP_HDR_REQ * | hdr_req, |
http_off_t * | range_from, | ||
http_off_t * | range_to | ||
) |
分析HTTP请求头中的 Range 字段
hdr_req | {HTTP_HDR_REQ*} 请求HTTP协议头, 不能为空 |
range_from | {http_off_t*} 存储偏移起始位置 |
range_to | {http_off_t*} 存储偏移结束位置 注: * {range_from}, {range_to} 下标从0开始 请求的 Range 格式: Range: bytes={range_from}-, bytes={range_from}-{range_to} |
HTTP_API void http_hdr_req_reset | ( | HTTP_HDR_REQ * | hh | ) |
将HTTP请求头对象的成员变量释放并重新初始化
hh | {HTTP_HDR_REQ*} HTTP请求头对象 |
HTTP_API HTTP_HDR_REQ* http_hdr_req_rewrite | ( | const HTTP_HDR_REQ * | hh, |
const char * | url | ||
) |
根据上次HTTP请求头内容及重定向的URL产生一个新的HTTP请求头
hh | {const HTTP_HDR_REQ*} 上次的HTTP请求头对象 |
url | {const char *} 重定向的URL,如果有 http[s]:// 前缀,则认为 是完整的URL,新的 Host 字段将由该URL中提取,否则则继承源HTTP请求头中 的 Host 字段 |
HTTP_API int http_hdr_req_rewrite2 | ( | HTTP_HDR_REQ * | hh, |
const char * | url | ||
) |
根据HTTP请求头内容及重定向的URL重新设置该HTTP请求头的信息
hh | {const HTTP_HDR_REQ*} 上次的HTTP请求头对象 |
url | {const char *} 重定向的URL,如果有 http[s]:// 前缀,则认为 是完整的URL,新的 Host 字段将由该URL中提取,否则则继承源HTTP请求头中 的 Host 字段 |
HTTP_API const char* http_hdr_req_url | ( | const HTTP_HDR_REQ * | hh | ) |
HTTP_API const char* http_hdr_req_url_part | ( | const HTTP_HDR_REQ * | hh | ) |
从HTTP请求头中获取请求行中的访问路径部分, 不包含主机名但包含参数. 如原请求行数据为: GET /cgi-bin/test.cgi?n1=v1&n2=v2 HTTP/1.1 or GET http://www.test.com[:80]/cgi-bin/test.cgi?n1=v1&n2=v2 HTTP/1.1 则分析后的结果数据为: /cgi-bin/test.cgi?n1=v1&n2=v2
hh | {const HTTP_HDR_REQ*} HTTP请求头类型的数据指针,不能为空 |
HTTP_API const char* http_hdr_req_url_path | ( | const HTTP_HDR_REQ * | hh | ) |
从HTTP请求头中获取请求行中的访问路径部分, 不包含主机名及参数. 如原请求行数据为: GET /cgi-bin/test.cgi?n1=v1&n2=v2 HTTP/1.1 or GET http://www.test.com[:80]/cgi-bin/test.cgi?n1=v1&n2=v2 HTTP/1.1 则分析后的结果数据为: /cgi-bin/test.cgi
hh | {const HTTP_HDR_REQ*} HTTP请求头类型的数据指针,不能为空 |
HTTP_API HTTP_HDR_RES* http_hdr_res_clone | ( | const HTTP_HDR_RES * | hdr_res | ) |
HTTP_API HTTP_HDR_RES* http_hdr_res_error | ( | int | status | ) |
用返回状态(nxx)生成一个HTTP响应头
status | {int} 状态号,nxx(4xx, 5xx) |
HTTP_API void http_hdr_res_free | ( | HTTP_HDR_RES * | hh | ) |
HTTP_API void http_hdr_res_get_async | ( | HTTP_HDR_RES * | hdr, |
ACL_ASTREAM * | astream, | ||
HTTP_HDR_NOTIFY | notify, | ||
void * | arg, | ||
int | timeout | ||
) |
异步获取一个HTTP RESPOND协议头,数据结果存储在hdr中, 当取得一个完整的HTTP头或 出错时调用用户的注册函数 notify
hdr | {HTTP_HDR_REQ*} HTTP响应头类型结构指针,不能为空 |
astream | {ACL_ASTREAM*} 与服务端连接的数据流, 不能为空 |
notify | {HTTP_HDR_NOTIFY} 当HTTP协议头读完或出错时调用的用户的注册函数 |
arg | {void*} notify 调用时的一个参数 |
timeout | {int} 接收数据过程中的读超时时间 |
HTTP_API int http_hdr_res_get_sync | ( | HTTP_HDR_RES * | hdr, |
ACL_VSTREAM * | stream, | ||
int | timeout | ||
) |
同步获取一个HTTP RESPOND协议头,数据结果存储在hdr中, 当取得一个完整的HTTP头或 出错时调用用户的注册函数 notify
hdr | {HTTP_HDR_REQ*} HTTP响应头类型结构指针,不能为空 |
stream | {ACL_VSTREAM*} 与服务端连接的数据流, 不能为空 |
timeout | {int} 接收数据过程中的读超时时间 |
HTTP_API void http_hdr_res_init | ( | HTTP_HDR_RES * | hdr_res, |
int | status | ||
) |
用返回状态(1xx, 2xx, 3xx, 4xx, 5xx) 初始化一个HTTP响应头
hdr_res | {HTTP_HDR_RES*} HTTP响应头,存储分析结果 |
status | {int} 状态号,nxx(1xx, 2xx, 3xx, 4xx, 5xx) |
HTTP_API HTTP_HDR_RES* http_hdr_res_new | ( | void | ) |
HTTP_API int http_hdr_res_parse | ( | HTTP_HDR_RES * | hdr_res | ) |
分析HTTP响应头里的数据,并存储分析结果
hdr_res | {HTTP_HDR_RES*} HTTP响应头 |
HTTP_API int http_hdr_res_range | ( | const HTTP_HDR_RES * | hdr_res, |
http_off_t * | range_from, | ||
http_off_t * | range_to, | ||
http_off_t * | total_length | ||
) |
分析HTTP响应头中的 Range 字段
hdr_res | {HTTP_HDR_RES*} 响应HTTP协议头, 不能为空 |
range_from | {http_off_t*} 存储偏移起始位置, 不能为空 |
range_to | {http_off_t*} 存储偏移结束位置, 不能为空 |
total_length | {http_off_t*} 整个数据文件的总长度, 可为空 |
HTTP_API void http_hdr_res_reset | ( | HTTP_HDR_RES * | hh | ) |
向HTTP响应头重新初始化并释放其中的成员变量
hh | {HTTP_HDR_RES*} HTTP响应头 |
HTTP_API HTTP_HDR_RES* http_hdr_res_static | ( | int | status | ) |
用返回状态(nxx)生成一个HTTP响应头
status | {int} 状态号,nxx(1xx, 2xx, 3xx, 4xx, 5xx) |
HTTP_API int http_hdr_res_status_parse | ( | HTTP_HDR_RES * | hh, |
const char * | dbuf | ||
) |
分析HTTP响应头中的状态行
hh | {HTTP_HDR_RES*} HTTP响应头类型的数据指针,不能为空 |
dbuf | {const char*} 状态行数据, 如: HTTP/1.0 200 OK,不能为空 |
重置一个HTTP通用头的状态,释放内部成员变量,主要用于keep-alive的长连接多次请求
hh | {HTTP_HDR*} HTTP通用头类型的数据指针,不能为空 |
HTTP_API int http_hdr_set_keepalive | ( | const HTTP_HDR_REQ * | req, |
HTTP_HDR_RES * | res | ||
) |
根据HTTP请求头的字段来设置是否与服务端保持长连接, 结果存储于HTTP响应头中
req | {const HTTP_HDR_REQ*} HTTP请求头 |
res | {HTTP_HDR_RES*} HTTP响应头,存储分析结果 |
HTTP_API void http_hdr_sprint | ( | ACL_VSTRING * | bf, |
const HTTP_HDR * | hh, | ||
const char * | msg | ||
) |
调试输出HTTP协议头部数据,调试类接口
bf | {ACL_VSTRING*} 输出结果将会定向至该缓冲区 |
hh | {HTTP_HDR*} 通用HTTP头类型的数据指针,不能为空 |
msg | {const char*} 用户希望与头部信息一起输出的自定义信息, 可以为空 |
HTTP_API void http_init | ( | const char * | tmpl_path | ) |
初始化HTTP应用协议
tmpl_path | {const char*} 模板信息文件的存放路径 |
HTTP_API const char* http_mkrfc1123 | ( | char * | buf, |
size_t | size, | ||
time_t | t | ||
) |
将时间值转换成RFC1123所要求的格式
buf | {char*} 存储空间 |
size | {size_t} buf 的空间大小 |
t | {time_t} 时间值 |
HTTP_API void http_req_body_get_async | ( | HTTP_REQ * | request, |
ACL_ASTREAM * | astream, | ||
HTTP_BODY_NOTIFY | notify, | ||
void * | arg, | ||
int | timeout | ||
) |
异步从客户端读取请求的BODY协议体, 在接收过程中边接收连回调用户的 notify 回调函数, 如果 notify 返回小于 0 的值, 则认为出错且不再继续接收数据
request | {HTTP_REQ*} HTTP请求体类型指针, 不能为空, 且 request->hdr 为空 |
astream | {ACL_ASTREAM*} 与客户端连接的数据流, 不能为空 |
notify | {HTTP_BODY_NOTIFY} 接收客户端数据过程中回调的用户的注册函数 |
arg | {void*} notify 调用时的一个参数 |
timeout | {int} 接收数据过程中的读超时时间 |
HTTP_API http_off_t http_req_body_get_sync | ( | HTTP_REQ * | request, |
ACL_VSTREAM * | stream, | ||
void * | buf, | ||
int | size | ||
) |
同步从客户端读取请求的BODY协议体
request | {HTTP_REQ*} HTTP请求体类型指针, 不能为空, 且 request->hdr 为空 |
stream | {ACL_VSTREAM*} 与客户端连接的数据流, 不能为空 |
buf | {void *} 存储结果的内容空间 |
size | {int} buf 的空间大小 |
HTTP_API HTTP_REQ* http_req_new | ( | HTTP_HDR_REQ * | hdr_req | ) |
根据HTTP请求头分配一个请求体对象
hdr_req | {HTTP_HDR_REQ*} 请求头对象 |
HTTP_API void http_res_body_get_async | ( | HTTP_RES * | respond, |
ACL_ASTREAM * | astream, | ||
HTTP_BODY_NOTIFY | notify, | ||
void * | arg, | ||
int | timeout | ||
) |
HTTP_API http_off_t http_res_body_get_sync | ( | HTTP_RES * | respond, |
ACL_VSTREAM * | stream, | ||
void * | buf, | ||
int | size | ||
) |
同步从服务端读取响应的BODY协议体
respond | {HTTP_RES*} HTTP响应体类型指针, 不能为空, 且 respond->hdr 为空 |
stream | {ACL_VSTREAM*} 与客户端连接的数据流, 不能为空 |
buf | {void *} 存储结果的内容空间 |
size | {int} buf 的空间大小 |
HTTP_API HTTP_RES* http_res_new | ( | HTTP_HDR_RES * | hdr_res | ) |
根据HTTP响应头分配一个响应体对象
hdr_res | {HTTP_HDR_RES*} 响应头对象 |
HTTP_API const char* http_status_line | ( | int | status | ) |
根据HTTP响应号(nxx)返回该值所代表的字符串
status | {int} 状态号,nxx(1xx, 2xx, 3xx, 4xx, 5xx) |
HTTP_API const ACL_VSTRING* http_tmpl_get | ( | int | status | ) |
读取对应HTTP响应状态码的模板信息
status | {int} HTTP 状态响应码 |
HTTP_API void http_tmpl_load | ( | const char * | tmpl_path | ) |
装载HTTP响应代码的HTML模板
tmpl_path | {const char*} HTML模板文件所在的路径 |
HTTP_API int http_tmpl_size | ( | int | status | ) |
获得相应HTTP响应状态码的模板提示信息的长度大小
status | {int} HTTP 状态响应码 |
HTTP_API const char* http_tmpl_title | ( | int | status | ) |
读取对应HTTP响应状态码的标题提示信息
status | {int} HTTP 状态响应码 |
HTTP_API void http_uri_correct | ( | int | onoff | ) |
设置标志位,针对 HTTP 请求的 URI 中的 ? 问号被转义(即被转成 %3F)的请求是否做兼容性处理
onoff | {int} 为非 0 值时表示做兼容性处理,内部缺省值为 1 |
HTTP_API void const char const char* fmt |
在文件 lib_http.h 第 620 行定义.
HTTP_API void const char* name |