lua发送http请求

1.6k 词
文章目录
</div>


<h3 id="直接发送"><a href="#直接发送" class="headerlink" title="直接发送"></a>直接发送</h3><figure class="highlight plain"><table><tbody><tr><td class="code"><pre><div class="line">local http = require(&#34;socket.http&#34;);</div><div class="line">local body = http.request(&#34;http://x86.pub&#34;);</div><div class="line">print(body)</div></pre></td></tr></tbody></table></figure>

获取状态码

local http = require("socket.http");
local body, code = http.request("http://x86.pub");
print(body)
print(code)

获取 response header

local http = require("socket.http");
local body, code, response_headers = http.request("http://x86.pub");
print_table(response_headers)

自定义 http 请求

local http = require("socket.http")
local request_body = [[login=user&password=123]]
local response_body = {}
local res, code, response_headers = http.request {
url = "http://httpbin.org/post",
method = "POST",
headers = {
["Content-Type"] = "application/x-www-form-urlencoded";
["Content-Length"] = #request_body;
},
source = ltn12.source.string(request_body),
sink = ltn12.sink.table(response_body),
}
print(res)
print(code)
if type(response_headers) == "table" then
for k, v in pairs(response_headers) do
print(k, v)
end
end
print("Response body:")
if type(response_body) == "table" then
print(table.concat(response_body))
else
print("Not a table:", type(response_body))
end