真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Openresty中http和C_json模塊怎么用

這篇文章主要介紹Openresty中http和C_json模塊怎么用,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

成都創(chuàng)新互聯(lián)主營下城網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app軟件定制開發(fā),下城h5成都微信小程序搭建,下城網(wǎng)站營銷推廣歡迎下城等地區(qū)企業(yè)咨詢

http客戶端

Openresty沒有提供默認的Http客戶端,需要下載第三方的http客戶端。

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

cd /usr/example/lualib/resty/  
wget https://raw.githubusercontent.com/pintsized/lua-resty-http/master/lib/resty/http_headers.lua  

wget https://raw.githubusercontent.com/pintsized/lua-resty-http/master/lib/resty/http.lua

lua-resty-http模塊的地址為https://github.com/pintsized/lua-resty-http

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

  • syntax: httpc = http.new() 創(chuàng)建一個 http對象

  • syntax: res, err = httpc:request_uri(uri, params)根據(jù)參數(shù)獲取內(nèi)容,包括:

    • status 狀態(tài)碼

    • headers 響應頭

    • body 響應體

vim /usr/example/lua/test_http.lua,寫以下代碼:

local http = require("resty.http")  

local httpc = http.new()  

local resp, err = httpc:request_uri("http://s.taobao.com", {  
    method = "GET",  
    path = "/search?q=hello",  
    headers = {  
        ["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36"  
    }  
})  

if not resp then  
    ngx.say("request error :", err)  
    return  
end  


ngx.status = resp.status  


for k, v in pairs(resp.headers) do  
    if k ~= "Transfer-Encoding" and k ~= "Connection" then  
        ngx.header[k] = v  
    end  
end  

ngx.say(resp.body)  

httpc:close()

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

 location /lua_http {
   default_type 'text/html';
   lua_code_cache on;
   content_by_lua_file /usr/example/lua/test_http.lua;
 }

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

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

resolver 8.8.8.8;

瀏覽器訪問:http://116.196.177.123/lua_http,瀏覽器會顯示淘寶的搜索頁。

lua_cjson模塊

Json是一種常見的數(shù)據(jù)交換格式,常用于http通信協(xié)議和其他數(shù)據(jù)傳輸領(lǐng)域。在openresty默認內(nèi)嵌了lua_cjson模塊,用來序列化數(shù)據(jù)。

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轉(zhuǎn)換成string

  • local obj = cjson.decode(str) 將string轉(zhuǎn)obj

vim /usr/example/lua/test_cjson.lua,添加以下內(nèi)容:

local cjson = require("cjson")  


local obj = {  
    id = 1,  
    name = "zhangsan",  
    age = nil,  
    is_male = false,  
    hobby = {"film", "music", "read"}  
}  

local str = cjson.encode(obj)  
ngx.say(str, "
")   str = '{"hobby":["film","music","read"],"is_male":false,"name":"zhangsan","id":1,"age":null}'   local obj = cjson.decode(str)   ngx.say(obj.age, "
")   ngx.say(obj.age == nil, "
")   ngx.say(obj.age == cjson.null, "
")   ngx.say(obj.hobby[1], "
")

vim /usr/example/example.conf添加以下內(nèi)容:

 location ~ /lua_cjson {  
   default_type 'text/html';  
   lua_code_cache on;  
   content_by_lua_file /usr/example/lua/test_cjson.lua;  
 }

在瀏覽器上訪問http://116.196.177.123/lua_cjson,瀏覽器顯示以下內(nèi)容:

{"hobby":["film","music","read"],"is_male":false,"name":"zhangsan","id":1}
null
false
true
film

以上是“Openresty中http和C_json模塊怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


網(wǎng)頁題目:Openresty中http和C_json模塊怎么用
文章源于:http://weahome.cn/article/ppesjh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部