我正在尝试通过http模块lua-resty-http发送请求。如何发送包含正文数据的请求。
我已经试过了
hc:connect("127.0.0.1", 82)
dates = ngx.req.get_post_args()
local hc = http:new()
result, errors = hc:request{
path = requrl,
method = "POST",
body = dates,
headers = {
["Host"] = "localhost",
},
}基本上,我正在尝试将一个lua表发送到另一个服务器位置。以及如何在lua表位置上进行捕获。
如果能有详细的解释,我将不胜感激。
发布于 2015-10-03 13:56:03
ngx.req.get_post_args()返回一个键、值对的表。http客户端的request函数的主体参数必须在format supported by OpenResty's cosocket send API中。这意味着要么是字符串,要么是保存字符串的类似表的数组。
如果您想通过HTTP请求发送一个lua表,那么您需要一种将其编码为字符串的方法。一种常见的方法是使用JSON,您可以使用捆绑的cjson库来实现:
local json = require "cjson"
local dates = ngx.req.get_post_args()
hc:request {
body = json.encode(dates),
...
}https://stackoverflow.com/questions/31324349
复制相似问题