Вызов API из SQL Server [Проблема] - PullRequest
0 голосов
/ 26 сентября 2019

Я работаю с API и MSSQL. Мне нужно вызвать API из SQL Server.Но при исполнении его ответ нулевой.Может кто-нибудь перечислить ошибки, если некоторые в запросах?

API отвечает, но проблема в том, что он показывает ошибку аутентификации, когда я использую точные правильные учетные данные.Это POST API.

Это единственный способ, который я нашел правильным при просмотре в Google весь день.Может кто-нибудь помочь или перечислить ошибки?

DECLARE @authHeader NVARCHAR(MAX)= 'Basic XXXXXXXXXXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXX'
DECLARE @contentType NVARCHAR(64) = 'application/json; charset=utf-8'
DECLARE @appVersion NVARCHAR(20) = '3.2.1'
DECLARE @appkey NVARCHAR(50) = 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'
DECLARE @deviceId NVARCHAR(50) = 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'
DECLARE @deviceType int = 1;
DECLARE @language int = 1;
DECLARE @status NVARCHAR(32);
DECLARE @statusText NVARCHAR(32);

DECLARE @Body as VARCHAR(8000) = 
'{
    "itemId":"XXXXXXXXXXXXXXXXXXXXXXX",
    "itemType":XXXXXXXXXXXXX,
    "liked":"true"
}'

DECLARE @responseText NVARCHAR(2000);
DECLARE @token INT;
DECLARE @url NVARCHAR(256) = 'https://api-stage.testapp.com/v4/test';

    Exec sp_OACreate 'MSXML2.ServerXMLHTTP', @token OUT;

    EXEC sp_OAMethod @token, 'open', NULL, 'POST', @url, 'false'

    EXEC sp_OAMethod @token, 'setRequestHeader', NULL, 'Authentication', @authHeader

    EXEC sp_OAMethod @token, 'setRequestHeader', NULL, 'Content-type', @contentType

    EXEC sp_OAMethod @token, 'setRequestHeader', NULL, 'appVersion', @appVersion

    EXEC sp_OAMethod @token, 'setRequestHeader', NULL, 'appkey', @appkey

    EXEC sp_OAMethod @token, 'setRequestHeader', NULL, 'deviceId', @deviceId

    EXEC sp_OAMethod @token, 'setRequestHeader', NULL, 'devicetype', @deviceType

    EXEC sp_OAMethod @token, 'setRequestHeader', NULL, 'language', @language

    EXEC sp_OAMethod @token, 'send', null

    Exec sp_OAMethod @token, 'setRequestBody', null, 'Body', @body

    EXEC sp_OAGetProperty @token, 'status', @status OUT;
    EXEC sp_OAGetProperty @token, 'statusText', @statusText OUT;
    EXEC sp_OAGetProperty @token, 'responseText', @responseText OUT;

    PRINT 'Status: ' + @status + ' (' + @statusText + ')';
    PRINT 'Response text: ' + @responseText;

    Select @ResponseText as Response
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...