2

我正在尝试使用来自 sql server 的 web api 发送 SMS。我有错误sp_OAMethod。下面写的是相同的代码

DECLARE @iReq int,@hr int 
DECLARE @sUrl as varchar(500) 
DECLARE @errorSource VARCHAR(8000) 
DECLARE @errorDescription VARCHAR(8000) 

-- Create Object for XMLHTTP
EXEC @hr = sp_OACreate 'Microsoft.XMLHTTP', @iReq OUT 
PRINT @hr

IF @hr <> 0 
BEGIN

Raiserror('sp_OACreate Microsoft.XMLHTTP FAILED!', 16, 1)


SET @sUrl='http://alerts.ebensms.com/api/v3/?method=sms&api_key=******&to=#MobNo#&sender=XXXX&message=#Msg#'
SET @sUrl=REPLACE(@sUrl,'#MobNo#','0000000000') 
SET @sUrl=REPLACE(@sUrl,'#Msg#','Thanks') 
SELECT @sUrl 

---- sms code start

EXEC @hr = sp_OAMethod @iReq, 'Open', NULL, 'GET', @sUrl,true
PRINT @hr 
END

IF @hr <> 0 
Raiserror('sp_OAMethod Open FAILED!', 16, 1) 

EXEC @hr = sp_OAMethod @iReq, 'send' 
SELECT @iReq 
PRINT 'open failed'

IF @hr <> 0 
  BEGIN
EXEC sp_OAGetErrorInfo @iReq, @errorSource OUTPUT, @errorDescription OUTPUT 
SELECT [Error Source] = @errorSource, 
[Description] = @errorDescription Raiserror('sp_OAMethod Send FAILED!', 16, 1) 
  END

ELSE
BEGIN
EXEC @hr = sp_OAGetProperty @iReq,'responseText'
PRINT @hr 
INSERT INTO tblUnCandidateSendSMSLog (Id,mobile,sendtext,created) values  (12,'0000000000','send','AAAAAAA-B23C80FD16D4')
END


EXEC sp_OAGetErrorInfo
4

1 回答 1

0

该错误与

sp_OAMethod @iReq, 'Open', NULL, 'GET', @sUrl,true 

其中说发送失败。

该问题现在已通过以下方式解决

sp_OAMethod @iReq, 'Open', NULL, 'POST', @sUrl,false 

和改变

sp_OACreate 'Microsoft.XMLHTTP', @iReq OUT  

sp_OACreate 'MSXML2.XMLHTTP', @iReq OUT;
于 2018-04-26T06:24:21.763 回答