Openresty最佳案例 | 第5篇:http和C_json模块

举报
方志朋 发表于 2018/12/22 15:41:24 2018/12/22
【摘要】 http和C_json模块

http客户端

Openresty没有提供默认的Http客户端,需要下载第三方的http客户端。


下载lua-resty-http到lualib目录下,使用以下的命令下载:


image.png


lua-resty-http模块的地址为https://github.com/pintsized/lua-resty-http


安装成功后,通过require(“resty.http”)引入 lua_http模块,它有以下的api方法:


  • syntax: httpc = http.new() 创建一个 http对象

  • syntax: res, err = httpc:request_uri(uri, params)根据参数获取内容,包括:

       status 状态码

       headers 响应头

       body 响应体


vim /usr/example/lua/test_http.lua,写以下代码:


image.png


vim /usr/example/example.conf 加上以下的配置:


image.png


在Nginx的配置文件nginx.conf的http部分,加上以下dns解析:


vim /usr/servers/nginx/conf/nginx.conf


image.png


浏览器访问:http://116.196.177.123/lua_http,浏览器会显示淘宝的搜索页。


lua_cjson模块

Json是一种常见的数据交换格式,常用于http通信协议和其他数据传输领域。在openresty默认内嵌了lua_cjson模块,用来序列化数据。


lua_cjson模块的地址:https://www.kyne.com.au/~mark/software/lua-cjson-manual.html


它常用的API如下:


  • local cjson = require “cjson” 获取一个cjson对象

  • local str = cjson.encode(obj) obj转换成string

  • local obj = cjson.decode(str) 将string转obj


vim /usr/example/lua/test_cjson.lua,添加以下内容:


image.png


vim /usr/example/example.conf添加以下内容:


image.png


在浏览器访问http://116.196.177.123/lua_cjson,浏览器显示以下内容:


image.png


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。