OpenResty 中使用 lua-resty-http 完成 HTTP 请求
OpenResty Lua HTTP About 1,228 words项目介绍
lua-resty-http
是OpenResty版本
的HTTP
客户端,基于cosocket
实现。
开源地址:https://github.com/ledgetech/lua-resty-http
对比ngx.location.capture
OpenResty
中提供的子请求可以模拟HTTP
请求,但有诸多限制。不能再定时任务ngx.timer
中使用也使得许多需求不能依靠这个方法来完成。
快速入门
安装依赖
luarocks install lua-resty-http
代码示例
GET
请求
local http = require('resty.http')
local httpc = http.new()
local res, err = httpc:request_uri('http://localhost/hello', {
keepalive_timeout = 2000 -- 毫秒
})
if not res or res.status then
ngx.log(ngx.ERR, "request error#", err)
return
end
ngx.log(ngx.ERR, "request status#", res.status)
ngx.say(res.body)
POST
请求
local http = require "resty.http"
local httpc = http.new()
local res, err = httpc:request_uri("http://localhost/hello", {
method = "POST",
body = "a=1&b=2",
headers = {
["Content-Type"] = "application/x-www-form-urlencoded",
},
keepalive_timeout = 60,
keepalive_pool = 10
})
if not res or res.status then
ngx.log(ngx.ERR, "request error#", err)
return
end
ngx.log(ngx.ERR, "request status#", res.status)
ngx.say(res.body)
常用方法
httpc = http.new()
创建HTTP
请求对象,失败返回nil
和错误信息。
res, err = httpc:request_uri(uri, params)
发送请求,填入请求链接和参数。
httpc:set_timeout(time)
设置请求超时时间,单位:毫秒。
开源案例
Views: 15,498 · Posted: 2020-03-04
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
Loading...