Вызов веб-службы из SQL Server 2017 - sp_OAMethod - не удалось установить соединение с сервером - PullRequest
0 голосов
/ 17 декабря 2018

Я пытаюсь подключиться к веб-службе JSON, используя sp_OA методы SQL Server.

Вот мой сценарий (измененный с здесь ):

DECLARE @TheURL VARCHAR(255) = 'http://ip.jsontest.com/' ,-- the url of the web service
        @TheResponse NVARCHAR(4000), --the resulting JSON
        @source nvarchar(255),  --error source
        @description nvarchar(255)  --error description
DECLARE @obj INT, @hr INT, @status INT, @message VARCHAR(255);

EXEC @hr = sp_OACreate 'MSXML2.ServerXMLHttp', @obj OUT;  --not really sure what ProgID or CLSID this is referencing

SELECT @hr

EXEC @hr = sp_OAMethod @obj, 'open', NULL, 'GET', @TheURL, false;

SELECT @hr

IF @hr = 0
    EXEC @hr = sp_OAMethod @obj, 'setRequestHeader', NULL, 'Content-Type',
          'application/x-www-form-urlencoded';
    SELECT @hr

    SET @message = 'sp_OAMethod Send failed';

    EXEC @hr = sp_OAMethod @obj, send, NULL, '';
    SELECT @hr

    EXEC sp_OAGetErrorInfo @obj, @source out, @description out
    SELECT @source, @description

    IF @hr = 0 
       EXEC @hr = sp_OAGetProperty @obj, 'status', @status OUT;

    IF @status <> 200 
    BEGIN
        SELECT @message = 'sp_OAMethod http status ' + Str(@status), @hr = -1;
    END;

    SET @message = 'sp_OAMethod read response failed';

    IF @hr = 0
    BEGIN
        EXEC @hr = sp_OAGetProperty @obj, 'responseText', @Theresponse OUT;
    END;

    EXEC sp_OADestroy @obj;

    IF @hr <> 0 
       RAISERROR(@message, 16, 1);

Я получаю сообщение об ошибке, источник - msxml3.dll, а описание -

Не удалось установить соединение с сервером

Яс использованием SQL Server 2017 в Windows Server 2012. Я видел некоторые решения для Windows Server 2003 и 2008, в которых говорилось об исправлении, однако я бы предположил, что они исправили это в последующих версиях.

Есть идеикак я мог решить эту ошибку?

...