该request
功能被“重载”(在其他语言的术语中)。如文档中所述,它具有三个签名:
local responsebodystring, statusnumber, headertable, statusstring
= request( urlstring ) -- GET
local responsebodystring, statusnumber, headertable, statusstring
= request( urlstring, requestbodystring ) -- POST
local success, statusnumber, headertable, statusstring
= request( requestparametertable ) -- depends on parameters
有关详细信息,尤其是有关错误结果的信息,请参阅文档。
对于最后一种形式,Lua 语法允许使用表构造函数调用函数,而不是括号中的单个表参数。这就是您使用的形式和语法。但是,您错误地认为第一个返回值是响应体。响应正文被传递到请求参数表中可选地指示的“接收器”函数,而您没有该函数。
尝试第一种形式:
local resp, stat, hdr
= socket.http.request("https://www.dropbox.com/s/hfrdbncfgbsarou/hello.mp3?dl=1")