如何从SQL Server发出HTTP请求?

我想从SQL服务器向Tomcat服务器发送HTTP请求" title="HTTP请求">HTTP请求。我已在Tomcat服务器中安装了SQL Server 2012

Express和非.NET应用程序。我已经经历过像从SQL服务器发出HTTP请求这样的过程

正如上面文章中所说,“必须在服务器上安装COM对象WinHttp.WinHttpRequest.5.1,其中一些典型的变化是WinHttp.WinHttpRequest.5”。我已经从winhttp下载链接下载了

winhttp.zip,在zip文件夹中找到了winhttp.dll,并C:\Program Files\Microsoft SQL

Server\MSSQL11.MSSQLSERVER2\MSSQL\Binn按照此msdn链接中的建议将其粘贴了。

遵循相同的建议,我在SSMS中执行了以下代码:

sp_addextendedproc 'GetHttp',

'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER2\MSSQL\Binn\winhttp.dll';

我还在SSMS中执行了以下代码,如“从SQL Server链接发出HTTP请求”中所述:

Alter function GetHttp

(

@url varchar(8000)

)

returns varchar(8000)

as

BEGIN

DECLARE @win int

DECLARE @hr int

DECLARE @text varchar(8000)

EXEC @hr=sp_OACreate 'WinHttp.WinHttpRequest.5.1',@win OUT

IF @hr <> 0 EXEC sp_OAGetErrorInfo @win

EXEC @hr=sp_OAMethod @win, 'Open',NULL,'GET',@url,'false'

IF @hr <> 0 EXEC sp_OAGetErrorInfo @win

EXEC @hr=sp_OAMethod @win,'Send'

IF @hr <> 0 EXEC sp_OAGetErrorInfo @win

EXEC @hr=sp_OAGetProperty @win,'ResponseText',@text OUTPUT

IF @hr <> 0 EXEC sp_OAGetErrorInfo @win

EXEC @hr=sp_OADestroy @win

IF @hr <> 0 EXEC sp_OAGetErrorInfo @win

RETURN @text

END

然后我得到了错误

消息2010,级别16,状态1,过程GetHttp,第2行

无法在’GetHttp’上执行更改,因为它是不兼容的对象类型。

我不知道如何调用该函数来发送HTTP请求。我认为是这样的GetHttp('http://www.google.co.in/')

我想念什么?

回答:

我通过powershell得到了答案。我所做的是在sql server中打开powershell,然后在powershell中执行了以下代码。

$http_Request= New-Object system.Net.WebClient;

$Result = $http_Request.downloadString("url")

以上是 如何从SQL Server发出HTTP请求? 的全部内容, 来源链接: utcz.com/qa/431768.html

回到顶部