sqlserver使用存儲過程發送http請求


1.要使用這個功能需要先開啟Sql Server 通訊配置--

sp_configure 'show advanced options', 1;

GO

RECONFIGURE;

GO

sp_configure 'Ole Automation Procedures', 1;

GO

RECONFIGURE;

GO

EXEC sp_configure 'Ole Automation Procedures';

GO

 

2.建一個存儲過程[P_GET_HttpRequestData]

GO
/****** Object: StoredProcedure [dbo].[P_GET_HttpRequestData] Script Date: 11/21/2019 08:38:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create PROCEDURE [dbo].[P_GET_HttpRequestData](
@URL varchar(500),
@status int=0 OUT
)
AS
BEGIN
DECLARE @object int,
@errSrc int
/*初始化對*/
declare @str nvarchar(200)
declare @ResponseText nvarchar(200)
EXEC @status = SP_OACreate 'Msxml2.ServerXMLHTTP.3.0', @object OUT;
print '===================='
print @object
IF @status <> 0
BEGIN
EXEC SP_OAGetErrorInfo @object, @errSrc OUT
RETURN
END
/*創建鏈接*/
EXEC @status= SP_OAMethod @object,'open',NULL,'GET',@URL
IF @status <> 0
BEGIN
EXEC SP_OAGetErrorInfo @object, @errSrc OUT
RETURN
END
EXEC @status=SP_OAMethod @object,'setRequestHeader','Content-Type','application/x-www-form-urlencoded'
/*發起請求*/
EXEC @status= SP_OAMethod @object,'send',null
print '--------------------------------'
print @str

print '--------------------------------'
print @status
IF @status <> 0
BEGIN
EXEC SP_OAGetErrorInfo @object, @errSrc OUT
RETURN
END
Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT --@ResponseText為http返回的內容

Select @ResponseText
print @ResponseText
Exec sp_OADestroy @Object
END;

 

3.調用存儲過程執行Url

declare @url varchar(1000)

declare  @ddip varchar(100)

declare  @vipno varchar(100)

--取IP地址

SELECT @ddip=sysvalue FROM s_sys where syscode='ddip' 

--取需要同步的會員編號

 select @vipno=c_vipno from inserted

--拼接url地址
 set @url='http://'+@ddip+'/DDAPI.aspx?type=tongbuVip&&bh='+@vipno

執行url
EXECUTE P_GET_HttpRequestData @url

 


免責聲明!

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



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