Lua - Request works via curl, but not via Lua (Lua socket)?

我正在尝试使用Lua与Sipgate api (https://developer.sipgate.io/)进行交互,并且他们提供的身份验证示例使用的是Curl,可以运行。(不是我的b64用户/密码)

curl \
  --request GET \
  --header "Accept: application/json" \
  --header "Authorization: Basic Sm9objp0b3BzZWNyZXQ=" \
  https://api.sipgate.com/v2/account

但是我尝试通过Lua时,我会得到以下错误。有人知道我错过了什么吗?

信息/回应。

ok 1

statusCode 301

statusText HTTP/1.1 301 Moved Permanently

headers: table: 0x2692948

location https://api.sipgate.com:80/v2/account/

connection close

content-length 0

Lua代码使用...


local https = require "ssl.https"
local mime = require("mime")
local http = require "socket.http"
local data = ""
local username = "user"
local password = "pass"

local function collect(chunk)
  if chunk ~= nil then
    data = data..chunk
    end
  return true
end

local ok, statusCode, headers, statusText = http.request {
  method = "GET",
  url = "https://api.sipgate.com/v2/account",
  headers = {
    ["Accept"] = "application/json",
    ["Authorization"] = "Basic " .. (mime.b64(username..":"..password)),
    },
  sink = collect
}

--debug -
print("enc64", mime.b64(username..":"..password))
print("ok\t",         ok);
print("statusCode", statusCode)
print("statusText", statusText)
print("headers:", headers)

print("data", data)
点赞