• 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

       执行后结果:

  • 相关阅读:
    python 上传下载文件
    post方式加载iframe
    js 实现打印功能
    python 判断数据类型
    web样式无法正常显示
    C# 调用python
    PDF转换成Txt
    js预览PDF的插件(亲测支持IE9,火狐,等等)
    文件下载
    asp.net网站发布到服务器GET的技能
  • 原文地址:https://www.cnblogs.com/zpy1993-09/p/13304161.html
Copyright © 2020-2023  润新知