resty.http发送get请求
时间: 2023-08-29 11:10:52 浏览: 163
发送http请求
在 OpenResty 中,可以使用 `resty.http` 模块来发送 HTTP 请求。以下是一个发送 GET 请求的示例代码:
```lua
local http = require("resty.http")
local httpc = http.new()
local params = {
method = "GET",
ssl_verify = false -- 如果请求的是 HTTPS 站点,需要设置为 false
}
local res, err = httpc:request_uri("https://www.example.com", params)
if not res then
ngx.log(ngx.ERR, "failed to request: ", err)
return
end
ngx.say(res.body)
```
上述代码中,使用 `http.new()` 创建一个 `httpc` 对象,然后设置请求参数,最后使用 `request_uri` 方法发送请求。如果请求成功,可以通过 `res.body` 获取响应内容。
如果需要发送带参数的 GET 请求,可以将参数拼接到 URL 后面,例如:
```lua
local http = require("resty.http")
local httpc = http.new()
local params = {
method = "GET",
ssl_verify = false -- 如果请求的是 HTTPS 站点,需要设置为 false
}
local url = "https://www.example.com?param1=value1¶m2=value2"
local res, err = httpc:request_uri(url, params)
if not res then
ngx.log(ngx.ERR, "failed to request: ", err)
return
end
ngx.say(res.body)
```
注意,以上代码中,如果请求的是 HTTPS 站点,需要设置 `ssl_verify` 为 `false`,否则会报 SSL 证书验证错误。建议在生产环境中使用有效的 SSL 证书,并开启证书验证。
阅读全文