2 回答

TA貢獻(xiàn)1877條經(jīng)驗 獲得超1個贊
我在想原因是因為你做了SELECT @ResponseText然后你對SELECT返回的任何東西都不做任何事情,最后你破壞了對象。
嘗試將您在 @ResponseText 中保存的響應(yīng)分配給另一個變量。在下面的示例中,我正在登錄一個 rest API,然后將響應(yīng)分配給另一個變量:
EXEC sp_OACREATE 'MSXML2.ServerXMLHttp', @Object OUT;
EXEC sp_OAMethod @Object, 'Open', NULL, 'POST', 'https://url.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','4f82f9d067914287979884f920d86ffb'
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

TA貢獻(xiàn)1772條經(jīng)驗 獲得超6個贊
嘗試在臨時表中使用 SELECT 來評估結(jié)果。
DECLARE @tableResponseText TABLE (
[ResponseText] VARCHAR(MAX)
)
您的設(shè)置/發(fā)送語句
收集響應(yīng)數(shù)據(jù)
EXEC @RC = sp_OAGetProperty @Object, 'status', @HttpResponseCode OUT
INSERT INTO @tableResponseText ([ResponseText]) EXEC sp_OAGetProperty @Object, 'responseText'
- 2 回答
- 0 關(guān)注
- 375 瀏覽
添加回答
舉報