JAVA全系列 教程
3762个小节阅读:7091.9k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
HTTP 请求行里的信息包括请求方法、URI 、HTTP版本等 可以用 ngx.var获取
因为 ngx.var 的方式效率不高,而且是只读的,所以 OpenResty 在表 ngx.req 里提供了数个专门操作请求行的函数。
这些函数多用在“ rewrite by lua ”阶段,改写 URI 的各种参数,实现重定向跳转。
函数口ngx.req.http_version 以数字形式返回请求行里的 HTTP 协议版本号 相当于$server protocol
函数 ngx.req.get_method 和 ngx.req set_method 相当于变量 $requestmethod ,可以读写当前的请求方法。但两者的接口不太对称,前者的返回值是字符串 ,而者的参数却不能用字符串,
xxxxxxxxxx
ngx.req.set_uri
ngx.uri = "a + b = c #!"
ngx.escape_uri() --编码
ngx.unescape_uri() -- 解码
OpenResty 提供五个函数操作 URI 里的参数( $args )。
获取 URI 参数
xxxxxxxxxx
函数 ngx.req.get_uri_args --用来获取 URI 里的参数:
args = ngx.req.get_uri_args (max args) --获取 URI 里的参数
local args = ngx.req.get_uri_args(20) --最多解析出 20 个参数
for k,v in pairs(args) do --使用 pairs 函数遍历解析出的参数
ngx.say (” args :”, k,”=”, v) -- 逐个输出参数
end
获取 POST 参数
URI 参数也可以使用请求体传递,这时要使用另外一个函数 ngx. req. get_post_args 来解析获取。ngx.req.get_post args 的用法与 ngx .r eq.get uri_args 基本相同,但因为参数位于请求体,所以必须要先调用口gx req read_body 读取数据,而且还要保证请求体不能存储在临时文件里
xxxxxxxxxx
ngx.req.read_body () -- 必须先读取请求体数据
local args = ngx.req.get_post_args (10) -- 然后才能解析参数