http_demo.lua 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. local function testTask()
  2. -- GET request, task内的同步操作
  3. local code, headers, body = http.request("GET","http://site0.cn/api/httptest/simple/time").wait()
  4. log.info("http.get", code, headers, body)
  5. -- POST request
  6. local req_headers = {}
  7. req_headers["Content-Type"] = "application/json"
  8. local body = json.encode({name="LuatOS"})
  9. local code, headers, body = http.request("POST","http://site0.cn/api/httptest/simple/date",
  10. req_headers,
  11. body -- POST请求所需要的body, string, zbuff, file均可
  12. ).wait()
  13. log.info("http.post", code, headers, body)
  14. -- POST and download, task内的同步操作
  15. local opts = {} -- 额外的配置项
  16. opts["dst"] = "/data.bin" -- 下载路径,可选
  17. opts["timeout"] = 30 -- 超时时长,单位秒,可选
  18. opts["adapter"] = socket.ETH0 -- 使用哪个网卡,可选
  19. local code, headers, body = http.request("POST","http://site0.cn/api/httptest/simple/date",
  20. {}, -- 请求所添加的 headers, 可以是nil
  21. "",
  22. opts
  23. ).wait()
  24. log.info("http.post", code, headers, body) -- 只返回code和headers
  25. local f = io.open("/data.bin", "rb")
  26. if f then
  27. local data = f:read("*a")
  28. log.info("fs", "data", data, data:toHex())
  29. end
  30. -- GET request, 开个task让它自行执行去吧, 不管执行结果了
  31. sys.taskInit(http.request("GET","http://site0.cn/api/httptest/simple/time").wait)
  32. end
  33. function httpDemo()
  34. sys.taskInit(testTask)
  35. end