阅读模式:

lua发送http请求

查看:15438  回复:2  类型:  来源: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_post_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_post_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 中国广东省深圳市南山区 回复
回复:[主题]
表情:
 提交评论
清空

发布评论:


登录:
  表情:
评论话题
推荐阅读:
TCP的三次握手(建立连接)和四次挥手(关闭连接)   阅读:4016栈和堆的区别   阅读:5307mysql5.7主从同步配置   阅读:6450爱编程,也爱健康   阅读:4581php显示刚刚、几分钟前、几小时前、几天前的函数   阅读:8968nginx编译安装后对nginx进行平滑升级   阅读:6998用php从1加到100的值   阅读:9079csv文件一键导入数据到mysql数据库   阅读:7064解决 nginx 413 request entity too large   阅读:4720nginx安装mysql和json模块   阅读:5549霍金24岁博士毕业论文在线预览   阅读:5906mysql5.7开启sql日志的配置   阅读:9689mysql共享锁和排他锁详解   阅读:7731mysql5.7主从同步配置   阅读:6450php文件下载防盗链   阅读:10250知乎百万赞作者告诉你:年薪百万的人都在靠什么赚钱   阅读:6904用php从1加到100的值   阅读:9079栈和堆的区别   阅读:5307mysql数据一键导出到csv文件   阅读:5972phpexcel 超简单从数据库一键导出数据到excel教程   阅读:7612mysql的四种索引类型   阅读:23210centos 7 设置 nginx-1.11.10 开机启动   阅读:8279centos7开启交换内存   阅读:11375php 使用 smtp.php 类在线发送邮件功能   阅读:6044php冒泡排序法   阅读:14817centos 7.2 添加php7 的 php-fpm 开机启动   阅读:25258mysql中文分词全文搜索索引讯搜的安装   阅读:7256centos 7.2 添加php7 的 php-fpm 开机启动   阅读:25258centos 7 安装 nginx-1.11.10   阅读:8879php 统计网页打开耗时和脚本运行内存   阅读:7092centos 7 安装 samba 服务   阅读:7133分享:淘宝技术这十年   阅读:4951linux php7安装yaf扩展   阅读:8861PHP 鸟哥:我也曾经是“不适合”编程的人   阅读:15173php 获取当前前后年、月、星期、日、时分秒的时间   阅读:7068最简单的Banner轮播淡入淡出效果代码及实现思路(附带源码)   阅读:13735mysql 为什么添加索引可以提高访问速度   阅读:6320最新centos7 搭建LNMP环境(centos7.2+php7+mysql5.7+nginx1.11+redis3.2)   阅读:11349nginx安装redis模块   阅读:6230centos 7 修改系统屏幕分辨率   阅读:46448php文件下载防盗链   阅读:10250爱编程,也爱健康   阅读:4581session与cookie的区别   阅读:4390web项目高并发量网站解决方案   阅读:4910栈和堆的区别   阅读:5307最简单的Banner轮播淡入淡出效果代码及实现思路(附带源码)   阅读:13735centos 7 安装 redis 3.2.9   阅读:6897linux top命令详解   阅读:9911解决 nginx 413 request entity too large   阅读:4720纯干货,程序员面试的超实用技巧   阅读:4532