<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                可以在Lua腳本中發送http請求,支持POST、GET、PUT、DELETE方法 使用httpOps模塊,你可以不使用Redis、MQ等接收端,直接將數據發送到應用接口 # **示例** t_user表,數據如下: ![](https://img.kancloud.cn/b7/ae/b7aea55df3a0d071d67a930b1f497314_589x141.png) Lua腳本: ``` -- t_user_httpclient.lua local ops = require("scriptOps") --加載腳本操作模塊 local json = require("json") -- 加載json模塊 local httpclient = require("httpOps") --加載http操作模塊 local row = ops.rawRow() --數據庫當前變更的一行數據,table類型,key為列名稱 local action = ops.rawAction() --當前數據庫事件,包括:insert、updare、delete local _id = row["ID"] --獲取ID列的值 local _userName = row["USER_NAME"] --獲取USER_NAME列的值 if action == "insert" then -- 插入事件 -- http get請求,第一個參數為URL,類型為string;第二個參數為header參數,類型為table --local url = string.format("http://localhost:8080/users/%s", _userName) --local res = httpclient.get(url,{ -- Authorization="Basic OSdjJGRpbjpvcGVuIANlc2SdDE==" --}) --if(res~=nil) then -- http響應代碼,如:200、401、403、500等 -- print(res.status_code) -- http響應內容,string類型 -- print(res.body) --else -- print("request fail") --end --http post請求,第一個參數為URL,類型為string;第二個參數為header參數,類型為table;第三個參數為post內容,類型為table local url = "http://localhost:8080/users" local _data = json.encode(row) -- 將result轉為json local res = httpclient.post(url,{ Authorization="Basic OSdjJGRpbjpvcGVuIANlc2SdDE==" },{ data=_data, }) if(res~=nil) then -- http響應代碼,如:200、401、403、500等 print(res.status_code) -- http響應內容,string類型 print(res.body) else print("post request fail") end end if action == "update" then -- 更新事件 --http put請求,第一個參數為URL,類型為string;第二個參數為header參數,類型為table;第三個參數為put內容,類型為table local url = "http://localhost:8080/users" local _data = json.encode(row) -- 將result轉為json local res = httpclient.put(url,{ Authorization="Basic OSdjJGRpbjpvcGVuIANlc2SdDE==" },{ data=_data, }) if(res~=nil) then -- http響應代碼,如:200、401、403、500等 print(res.status_code) -- http響應內容,string類型 print(res.body) else print("put request fail") end end if action == "delete" then -- 刪除事件 -- http delete請求,第一個參數為URL,類型為string;第二個參數為header參數,類型為table local url = string.format("http://localhost:8080/users/%s", _id) local res = httpclient.delete(url,{ Authorization="Basic OSdjJGRpbjpvcGVuIANlc2SdDE==" }) if(res~=nil) then -- http響應代碼,如:200、401、403、500等 print(res.status_code) -- http響應內容,string類型 print(res.body) else print("delete request fail") end end ``` 引入腳本: ``` #目標類型 target: script # 支持redis、mongodb、elasticsearch、rocketmq、kafka、rabbitmq、script #規則配置 rule: - schema: eseap #數據庫名稱 table: t_user #表名稱 #order_by_column: id #排序字段,存量數據同步時不能為空 lua_file_path: lua/t_user_httpclient.lua #lua腳本文件 #lua_script: #lua 腳本 ``` insert事件,發送到后臺的數據如下: ![](https://img.kancloud.cn/48/5e/485e8ffe23c747848c7a57b3e7b1281d_1431x101.jpg) update事件,發送到后臺的數據如下: ![](https://img.kancloud.cn/87/8e/878e0ba9b28561c9ada2f78eabe49c27_1444x102.jpg) delete事件,發送到后臺的數據如下: ![](https://img.kancloud.cn/94/a9/94a9f8e2addb190751be676039ab5be6_1452x100.jpg) # **httpOps模塊** 提供的方法如下: 1、get(url,headers) 發送get請求;url為請求地址;headers為請求頭參數,table類型 2、delete(url,headers) 發送delete請求;url為請求地址;headers為請求頭參數,table類型 3、post(url,headers,formItems) 發送post請求;url為請求地址;headers為請求頭參數,table類型;formItems為表單數據,table類型 4、put(url,headers,formItems) 發送put請求;url為請求地址;headers為請求頭參數,table類型;formItems為表單數據,table類型 上面4個方法的返回值為一個table類型的結果,元素"status_code"為http響應狀態,Number類型(如:200、401、403、500等);元素body為http響應內容,string類型 # **后臺測試代碼** ## **golang** ``` package main import ( "fmt" "github.com/gin-gonic/gin" "net/http" ) func main() { r := gin.Default() r.GET("/users/:name", func(c *gin.Context) { name := c.Param("name") c.String(http.StatusOK, "Get: %s", name) }) r.POST("/users", func(c *gin.Context) { authorization:=c.GetHeader("Authorization") data := c.PostForm("data") fmt.Printf("method: post \n") fmt.Printf("authorization: %s \n", authorization) fmt.Printf("data: %s \n",data) c.String(http.StatusOK, "ok") }) r.PUT("/users", func(c *gin.Context) { authorization:=c.GetHeader("Authorization") data := c.PostForm("data") fmt.Printf("method: put \n") fmt.Printf("authorization: %s \n", authorization) fmt.Printf("data: %s \n",data) c.String(http.StatusOK, "ok") }) r.DELETE("/users/:id", func(c *gin.Context) { id := c.Param("id") authorization:=c.GetHeader("Authorization") fmt.Printf("method: delete \n") fmt.Printf("authorization: %s \n", authorization) fmt.Printf("id: %s \n",id) c.String(http.StatusOK, "ok") }) r.Run() // listen and serve on 0.0.0.0:8080 } ``` ## **java(spring mvc)** ``` @RestController @RequestMapping("/users") public class LuaHttpClientTest { @PostMapping public String insert(@RequestParam(name = "data") String data, @RequestHeader(value="Authorization") String authorization) { System.out.println("method: post"); System.out.println("authorization: "+authorization); System.out.println("data: "+data); return "ok"; } @PutMapping public String update(@RequestParam(name = "data") String data, @RequestHeader(value="Authorization") String authorization) { System.out.println("method: put"); System.out.println("authorization: "+authorization); System.out.println("data: "+data); return "ok"; } @DeleteMapping("/{id}") public String delete(@PathVariable(name = "id") String id, @RequestHeader(value="Authorization") String authorization) { System.out.println("method: delete"); System.out.println("authorization: "+authorization); System.out.println("id: "+id); return "ok"; } } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看