SQLserver 遠程調用API接口


   最近公司要搞手機APP主動告警推送,本來想通過后台做個自動程序干這件事,定時推送,但是這樣做一些告警推送消息不能夠及時推送給用戶。

  仔細想了一下,如果每一條告警記錄我都能及時發現並及時推送,豈不是更及時更准確,因為告警記錄是通過采集程序解析后及時插入數據庫的。所以,如果我在告警記錄表里建一個Inset 模式的觸發器,然后在觸發器中通過數據庫遠程調用API接口,做消息推送豈不是很好。(關於觸發器的介紹,看我以前寫的就行了 https://www.cnblogs.com/zpy1993-09/p/12152971.html

 觸發器建立后,就附帶數據庫遠程調用API接口的數據庫代碼就行了。

   這里為了驗證推送,傳入死數據就行了。話不多說,上代碼:

declare @ServiceUrl as varchar(1000) 
declare @UrlAddress varchar(500) 
set @UrlAddress = 'http://遠程接口IP/wapi/JZ/'

declare @FunName varchar(50)
--WebService中調用的方法名:例如'getMobileCodeInfo'
set @FunName = 'Work_ReceiveTask'   

--以下參數對應WebService中4個參數的[參數名]
declare @WorkID varchar(100),@ExplainContent varchar(100),@Uid varchar(100),@IsAssignTask varchar(100)
set @WorkID = 'WorkID'
set @ExplainContent = 'ExplainContent'

set @Uid = 'Uid'
set @IsAssignTask = 'IsAssignTask'
declare @P1_Value varchar(100),@P2_Value varchar(100),@P3_Value varchar(100),@P4_Value varchar(100)
set @P1_Value = 56261
set @P2_Value = '123213'
set @P3_Value = 309
set @P4_Value = 1

set @ServiceUrl = @UrlAddress + @FunName + '?' + @WorkID + '=' + @P1_Value +'&' + @ExplainContent + '=' + @P2_Value +'&' + @Uid + '=' + @P3_Value +'&' + @IsAssignTask + '=' + @P4_Value                       
                  
Declare @Object as Int
Declare @ResponseText as Varchar(8000)
                  
Exec sp_OACreate 'MSXML2.XMLHTTP', @Object OUT;
Exec sp_OAMethod @Object, 'open', NULL, 'get',@ServiceUrl,'false'
Exec sp_OAMethod @Object, 'send'
Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
     
Select @ResponseText     
Exec sp_OADestroy @Object
GO

 

   執行后結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM