阅读模式:

lua发送http请求

查看:20116  回复:4  类型:  来源:php自学网  标签 nginx lua

        lua发送http请求,luajit默认没有http.lua库,需要下载并存放到luajit对应目录。

一、下载http.lua和http_headers.lua库

location = /testscript{
    default_type text/plain;
    content_by_lua_file html/luafile/test.lua;
}
vim test.lua
local zhttp = require "resty.http"

        1.运行后查看nginx错误日志,会提示没有http.lua文件:

no http.lua file.png

        2.下载http.lua和http_headers.lua库

            下载页面:https://github.com/pintsized/lua-resty-http

            直接下载:http_headers.lua-http.lua.rar

            下载好后放入对应目录,这里的目录是:

[root@zixuephp resty]# pwd
/usr/local/LuaJIT/share/luajit-2.0.5/resty
git clone https://github.com/pintsized/lua-resty-http.git

http.lua downloads.png

http.lua file show.png

    重启nginx。

二、lua发送http请求代码

    1.get请求

local zhttp = require "resty.http"
local function http_get_client(url, timeout)
    local httpc = zhttp.new()

    timeout = timeout or 30000
    httpc:set_timeout(timeout)

    local res, err_ = httpc:request_uri(url, {
        method = "GET",
        headers = {
        ["Content-Type"] = "application/x-www-form-urlencoded",
      }
  })
  httpc:set_keepalive(5000, 100)
  httpc:close()
  return res, err_
end

    2.post请求

local zhttp = require "resty.http"
local function http_post_client(url,body,timeout)
    local httpc = zhttp.new()

    timeout = timeout or 30000
    httpc:set_timeout(timeout)

  local res, err_ = httpc:request_uri(url, {
      method = "POST",
    body = body,
    headers = {
         ["Content-Type"] = "application/x-www-form-urlencoded",
    }
  })
  httpc:set_keepalive(5000, 100)
      httpc:close()
  if not res then 
      return nil, err_ 
  else if res.status == 200 then 
    return res.body, err_ 
  else 
    return nil, err_ end 
  end

end
--get
local resp, err = http_get_client("http://zixuephp.net/index.html?name=test",3000)
--post
local body = {"name" = "test"}
local resp, err = http_post_client("http://zixuephp.net/index.html?name=test",body,3000)
分享到:
0 0

*有问题之处烦请在评论中指出非常感谢!
不是我想要的内容,继续搜索:

扫描二维码手机查看

最新评论:
阿巴  发表于 2019-05-25 15:31:07  中国浙江省
沙发
我这里local ngx = ngx 这行出错了,好像是没有ngx 这个是要怎么操作 回复
站长 2019-05-27 16:56 中国广东省深圳市南山区
是不是你的模块没安装好 回复
Clown  发表于 2月前  四川省成都市移动
板凳
local httpc = zhttp.new()这里报错“/opt/openresty/lualib/resty/http.lua:133: API disabled in the context of log_by_lua* stack traceback:”。怎么解决啊?困扰很久了。。 回复
站长 2020-08-03 11:46 中国广东深圳
改了resty.http模块代码?试试content_by_lua_file看下。没有遇到过这个问题 回复
回复:[主题]
表情:
 提交评论
清空

发布评论:


登录:
  表情:
评论话题
推荐阅读:
最简单的Banner轮播左右切换效果代码及实现思路(附带源码)   阅读:35990把php session 会话保存到redis   阅读:9203mysql5.7主从同步配置   阅读:9012centos 7 添加 redis 3.2.9 开机启动脚本   阅读:11326把php session 会话保存到redis   阅读:9203centos7中颁发CA证书并开启web https   阅读:10794面试的时候回去等通知,等电话的真实意思   阅读:28172centos7开启交换内存   阅读:13350面试都会问你为什么你从上一家公司离职的真实意思   阅读:13449“米粉节”背后的故事——小米网抢购系统开发实践   阅读:5475一步步带你,如何网站架构   阅读:5647mysql5.7主从同步配置   阅读:9012网站局部小图片优化-base64编码图片   阅读:23827centos 7 安装 mysql-5.7   阅读:10050linux命令中执行php脚本   阅读:10262nginx安装redis模块   阅读:8662php翻转字符串   阅读:5018mysql的四种索引类型   阅读:25998linux时间戳有趣的情人节秒1234567890   阅读:6973phpexcel 超简单从数据库一键导出数据到excel教程   阅读:9177mysql共享锁和排他锁详解   阅读:9395centos7.3安装mongodb3.6   阅读:9512什么是天使轮?什么是A轮融资?B轮融资?   阅读:6881知乎百万赞作者告诉你:年薪百万的人都在靠什么赚钱   阅读:8654web项目高并发量网站解决方案   阅读:5944mysql数据一键导出到csv文件   阅读:7353一键分享到QQ空间、QQ好友、新浪微博、微信代码   阅读:140931程序员找工作三要素(必看)   阅读:7079linux rarcrack破解rar、zip和7z压缩包简单密码的工具   阅读:20700php文件下载防盗链   阅读:11822移动端自适应rem原理   阅读:11187比phpexcel还要简单的excel CSV 一键导入数据到数据库   阅读:6758比phpexcel还要简单的excel CSV 一键导入数据到数据库   阅读:6758给网站添加一键qq登录的功能   阅读:9401mysql 为什么添加索引可以提高访问速度   阅读:7661最新centos7 搭建LNMP环境(centos7.2+php7+mysql5.7+nginx1.11+redis3.2)   阅读:12936最简单的Banner轮播左右切换效果代码及实现思路(附带源码)   阅读:35990javascript对cookie操作详细代码函数   阅读:6730知乎百万赞作者告诉你:年薪百万的人都在靠什么赚钱   阅读:8654移动端js触摸touch详解(附带案例源码)   阅读:19846phpexcel 超简单从excel表格一键导入数据到数据库教程   阅读:14217centos 7 安装 samba 服务   阅读:8472php+redis实现消息队列   阅读:18058linux php7编译安装mongodb扩展   阅读:10902linux时间戳有趣的情人节秒1234567890   阅读:6973centos 7 修改系统屏幕分辨率   阅读:53063php翻转字符串   阅读:5018php打印九九加法表   阅读:13948最简单的Banner轮播淡入淡出效果代码及实现思路(附带源码)   阅读:16029解决 nginx 413 request entity too large   阅读:6018