发起 GET 请求 (http.get)
声明
HTTP状态码, 返回头JSON文本, 返回主体 = http.get(URL [, 超时秒, 请求头, URL ESCAPE ])
参数及返回值
- URL
- 文本型,需要请求的 URL 地址,该方法默认会对 URL 进行百分号 escape 处理,如不需要可参考 URL不ESCAPE 参数说明
- 超时秒
- 实数型,可选参数,请求超时时间,单位秒,默认 10秒
- 请求头
- 表型,可选参数,发出的请求的头部信息,形式 {field1 = value1, field2 = value2, ...},默认 {}
- URL ESCAPE
- 布尔型,可选参数,false 表示不对 URL 进行 escape 直接请求,默认 true
- HTTP状态码
- 整数型,返回当次请求的 http 状态码,请求超时返回 -1
- 返回头JSON文本
- 文本型 或 nil,请求完成返回的 JSON 形式头部信息,请求超时返回 nil
- 返回主体
- 字符串型 或 nil,请求完成返回的内容,请求超时返回 nil
- 如果请求的对象为图片,返回图片的base64值
示例
local code, res_headers, body = http.get("http://www.baidu.com", 1, {
["User-Agent"] = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)"; -- 模拟 IE8 的请求
["Cookie"] = "大佬你会不会啊?"; -- 顺带 Cookie 提交
})
if code == 200 then -- 如果返回的状态码是 HTTP_OK
sys.print(body) -- 输出百度首页的网页 HTML 内容
end
注:上述代码中使用了非本章函数 sys.print
示例
-- 中文 URL 默认自动会 escape,包含中文的 URL 可直接像下面这样调用
local c, h, r = http.get("https://www.example.com/测试文本.txt")
if c==200 then -- 如果返回的状态码是 HTTP_OK
sys.print(r) -- 输出内容
end
--
-- URL不ESCAPE 参数示例,下面的例子与上面例子等效
local c, h, r = http.get("https://www.example.com/%E6%B5%8B%E8%AF%95%E6%96%87%E6%9C%AC.txt", 5, {}, false--[[这里]])
if c==200 then -- 如果返回的状态码是 HTTP_OK
sys.print(r) -- 输出内容
end