2012-07-10 31 views

回答

7

您可以使用LuaSocket库及其http.request函数使用来自URL的HTTP进行下载。

该函数有两种形式:

  • 简单的呼叫:http.request('http://stackoverflow.com')
  • 先进的呼叫:http.request { url = 'http://stackoverflow.com', ... }

简单的调用返回4个值 - 整个的URL字符串中的内容, HTTP响应代码,标题和响应行。然后,您可以使用io库将内容保存到文件中。

高级调用允许您设置多个参数,如HTTP方法和标头。一个重要的参数是sink。它代表LTN12-style sink。对于存储到文件,您可以使用sink.file

local file = ltn12.sink.file(io.open('stackoverflow', 'w')) 
http.request { 
    url = 'http://stackoverflow.com', 
    sink = file, 
} 
+0

它的工作原理。谢谢。 – websteerr 2012-07-10 13:46:44

+0

用'local file'语句获得以下内容:'尝试索引本地'文件'(函数值)' – crockpotveggies 2016-08-15 21:05:47

+0

@crockpotveggies请发布失败的完整源代码(类似pastebin的地方),以及luasocket ,因为这个答案中的短片段按预期工作。 – 2016-08-21 17:40:56