我正在从 SQL 调用 Web 服务。这听起来可能很奇怪,但无论如何,这就是我正在做的事情。
我的代码可以调用在线(公共)Web 服务 (HTTP GET),但是当我尝试调用同一 AWS 环境中的服务(也称为 HTTP GET)时,该服务不会被调用,并且我得到一个空白响应。
这是有效的代码:
DECLARE @Object as int;
DECLARE @ResponseText as varchar(8000);
DECLARE @URL as varchar(200) = 'https://democraticintelligence.org/home/ping'
EXEC sp_OACreate 'MSXML2.XMLHTTP', @Object OUT;
EXEC sp_OAMethod @Object, 'open', NULL, 'get',
@URL,
'false'
EXEC sp_OAMethod @Object, 'send'
EXEC sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
SELECT @ResponseText
当我在 AWS 中将@URL 替换为对我的服务的调用时,该服务不会被调用,并且我得到一个空白的@ResponseText。
我试过的:
- 通过将 URL 粘贴到 Chrome 中从数据库服务器调用 Web 服务,工作正常。
- 通过将 URL 粘贴到 Chrome 中从我的 PC 调用 Web 服务,工作正常。
- 在我的本地 PC 上从 SQL 调用 Web 服务失败。
- 从 AWS 中的数据库服务器上的 SQL 调用 Web 服务失败。
任何有助于调试的建议将不胜感激。