sqlserver使用存储过程发送http请求

本文介绍如何在SQLServer数据库中使用存储过程调用HTTP请求,包括配置启用OleAutomationProcedures,创建存储过程P_GET_HttpRequestData用于GET请求,并通过示例展示如何从外部API获取数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文主要向大家介绍了SQLServer数据库访问发送Http请求,通过具体的内容向大家展现,希望对大家学习SQLServer数据库有所帮助。

-- 通用读取获取数据存储过程

--开启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

 

/*

参数说明?

@URL=http请求地址

@status=状态代?

@returnText=返回?

@object=对象令牌

@errSrc=错误源编?

*/

CREATE PROCEDURE P_GET_HttpRequestData(

@URL varchar(500),

@status int=0 OUT,

@returnText varchar(2000)='' OUT

)

AS

BEGIN

DECLARE @object int,

@errSrc int

/*初始化对*/

EXEC @status = SP_OACreate 'Msxml2.ServerXMLHTTP.3.0', @object OUT

IF @status <> 0

BEGIN

 EXEC SP_OAGetErrorInfo @object, @errSrc OUT, @returnText OUT

 RETURN

END

 

/*创建链接*/

EXEC @status= SP_OAMethod @object,'open',NULL,'GET',@URL

IF @status <> 0

BEGIN

 EXEC SP_OAGetErrorInfo @object, @errSrc OUT, @returnText OUT

 RETURN

END

EXEC @status=SP_OAMethod @object,'setRequestHeader','Content-Type','application/x-www-form-urlencoded'

/*发起请求*/

EXEC @status= SP_OAMethod @object,'send',NULL 

IF @status <> 0 

BEGIN 

 EXEC SP_OAGetErrorInfo @object, @errSrc OUT, @returnText OUT

 RETURN

END

     

/*获取返回*/

EXEC @status= SP_OAGetProperty @object,'responseText',@returnText OUT

IF @status <> 0 

BEGIN 

 EXEC SP_OAGetErrorInfo @object, @errSrc OUT, @returnText OUT

 RETURN

END

END;

 

 

----测试

CREATE PROCEDURE IPCC_WEBSERVICE_PACKID(@parametersStr VARCHAR(255),@outText VARCHAR(255) OUT)

AS

BEGIN

  DECLARE @returnText VARCHAR(500)

  DECLARE @status int

  DECLARE @urlStr VARCHAR(255)

  SET @urlStr = 'http://172.17.5.14:9090/df/sendDataToIVR.action?parametersStr='+@parametersStr+'&ifaceType=4';

EXEC P_GET_HttpRequestData    @urlStr, @status OUTPUT,@returnText   OUTPUT;

   SET @outText = @returnText;

   print @outText ; ---打印

END;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值