【发布时间】:2018-07-10 08:06:49
【问题描述】:
我有以下调用 Web API 方法的代码示例:
DECLARE @Object AS int;
DECLARE @ResponSEText AS Varchar(8000);
DECLARE @Token AS Varchar(8000);
DECLARE @xmltest AS Varchar(8000);
DECLARE @hResult AS int
DECLARE @source varchar(255), @desc varchar(255)
DECLARE @LocationId varchar(25);
DECLARE @Body AS varchar(8000) = '{
"UserName": "username",
"Password": "password"
}'
--EXEC sp_OACREATE 'MSXML2.XMLHTTP', @Object OUT;
EXEC sp_OACREATE 'MSXML2.ServerXMLHttp', @Object OUT;
EXEC sp_OAMethod @Object, 'open', NULL, 'POST', 'https://urgentcargus.azure-api.net/api/LoginUser', 'false'
EXEC sp_OAMethod @Object, 'SETRequestHeader', null, 'Content-Type', 'application/json'
DECLARE @len int
SET @len = len(@body)
EXEC sp_OAMethod @Object, 'SETRequestHeader', null, 'Ocp-Apim-Subscription-Key','23cb2410112b4c01bc397bcda0d18487'
EXEC sp_OAMethod @Object, 'SETRequestHeader', null, 'Ocp-Apim-Trace:true'
EXEC sp_OAMethod @Object, 'SETRequestHeader', null, 'Content-Length', @len
EXEC sp_OAMethod @Object, 'SETRequestBody', null, 'Body', @body
EXEC sp_OAMethod @Object, 'Send', null, @body
EXEC sp_OAMethod @Object, 'responSEText', @ResponSEText OUTPUT
SELECT @Token=@ResponSEText
EXEC sp_OADestroy @Object
SET @Token ='Bearer '+ REPLACE(@Token,'"','')
PRINT @Token
在我的笔记本电脑(Win10、SQL Server 2017)上,我的响应时间不到一秒。但是,在客户服务器(Windows Server 2012R2、SQL Server 2017)上使用的相同代码示例需要将近 21 秒才能获得响应,即使它返回 NULL。
我有什么遗漏的吗?我猜它必须在网络上做一些与服务器设置及其输出方式相关的事情。谢谢
【问题讨论】:
标签: sql-server ole