我正在尝试创建一个使用Lua socket.http
向Github存储库创建问题的函数,但我每次都会拒绝连接。套接字的文档有点不清楚,我找不到更多有用的信息,为什么请求每次都被拒绝。我尝试了以下方法:
local config = {
token = "oauth token from github"
}
local http, ltn12 = require("socket.http"), require("ltn12")
local payload = '{"title": "Test", "body": "Test body", "labels": ["bug"]}'
local response, status, headers, line = http.request("https://api.github.com/repos/<username>/<repository>/issues?access_token=" .. config.token, payload)
所以我再次检查了怎么做,还有第二个表格来做一个请求。我正在尝试以下方法:
local response = {}
local _, status, headers, line = http.request{
url = "https://api.github.com/repos/<username>/<repository>/issues",
sink = ltn12.sink.table(response),
method = "POST",
headers = {
["Authorization"] = "token " .. config.token,
["Content-Length"] = payload:len()
},
source = ltn12.source.string(payload)
}
根据套接字文档,这应该向URL发送POST请求,将有效负载作为正文发送。如果我print(status)
,则会打印connection refused
。
我忽略了第一个返回值,因为它总是为1。
我尝试使用curl手动发出请求:
curl -H "Authorization: token <oauth token from github>" https://api.github.com/repos/<username>/<repository>/issues -XPOST -d '{"title": "Test", "body": "{"title": "Test", "body": "Test body", "labels": ["bug"]}'
它正确地发布了这个问题。我仍然无法弄清楚连接被拒绝的情况。