d02540311 2017-04-07 09:12 采纳率: 0%
浏览 1439

如何在数据库中模拟http请求网页短信接口

USE [Test]
GO

/****** Object: StoredProcedure [dbo].[UXP_WS_SendShortMsg_20170406] Script Date: 04/07/2017 17:04:05 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

/*

sql发送手机短信接口

ex:
declare @re int
execute dbo.UXP_WS_SendShortMsg '1307','验证码为:5892344',@re output
select @re
*/

CREATE proc [dbo].UXP_WS_SendShortMsg_20170406,
@msg nvarchar(4000),
@return int output
)
as
declare @return_desc varchar(100)

DECLARE @obj INT

DECLARE @url nVARCHAR(4000)

DECLARE @url_aliyun nVARCHAR(4000)--阿里云短信接口

DECLARE @response VARCHAR(5000)

declare @flowuserid varchar(30)
declare @uid nvarchar(30)
declare @pwd nvarchar(30)
set @uid='temul'
set @pwd='termupsd'

----阿里云 http://.88:9800/WS.asmx/SendMessage?TelCode=15919424&messageCenter={"carleadinfo":"aaa","usecarempinfo":"bbb"}&TemplateCode=110

--print @chno

set @url ='http://.88:9800/NewWS.asmx/SendMessage?'+@msg
EXEC sp_OACreate 'MSXML2.ServerXMLHttp.6.0',@obj out
print @obj

EXEC sp_OAMethod @obj,'Open',null,'get',@url,false

EXEC sp_OAMethod @obj,'send'

EXEC sp_OAGetProperty @obj,'responseText',@response out

--SELECT @response [response]

EXEC sp_OADestroy @obj

declare @i int,@j int
declare @sourceC varchar(20),@placeC Varchar(30)
while charindex('非法字符是',@response,1)<>0
begin
set @i=charindex('是:',@response,1)
set @i=@i+1
set @sourcec=rtrim(substring(@response,@i+1,len(@response)-@i-9))
set @placec=left(@sourcec,1) + ' ' + substring(@sourcec,2,len(@sourcec)-1)
set @msg=replace(@msg,@sourcec,@placec)

--将非法字符间中间强行插入空格符,再次发送
set @url ='http://4.88:9800/NewWS.asmx/SendMessage?'+@msg
EXEC sp_OACreate 'MSXML2.ServerXMLHttp.6.0',@obj out 

EXEC sp_OAMethod @obj,'Open',null,'GET',@url,false      
EXEC sp_OAMethod @obj,'send'      
EXEC sp_OAGetProperty @obj,'responseText',@response out          
EXEC sp_OADestroy @obj 

end

IF CHARINDEX('success',@response,1)<>0 --SCM返回成功信息
    begin
        set @return=1
        SET @return_desc='Success'
    end

ELSE --
BEGIN
set @return=0
print @response
SET @return_desc='出错1,' + @response
end
print @return_desc

RETURN

GO

  • 写回答

1条回答 默认 最新

  • zqbnqsdsmd 2017-04-08 15:43
    关注
    评论

报告相同问题?

悬赏问题

  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败