第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從 SQL Server 向 rest API 發(fā)送請求并檢查返回的 http 代碼

從 SQL Server 向 rest API 發(fā)送請求并檢查返回的 http 代碼

PHP
炎炎設(shè)計 2021-11-05 16:09:13
我正在嘗試將 json 數(shù)據(jù)發(fā)送到 rest API,最好是從 SQL Server 2016 發(fā)送。我遇到了以下使用 sp_OAMethod 的代碼(來自https://gist.github.com/theorigin/fa3c58406ff7b4565ca2)并使用 sp_OAMethod 對其進(jìn)行了測試webhook.site 所以我知道它發(fā)送,但我看不到來自 SQL 的 http 響應(yīng)代碼,這是我需要查看的......如果有問題,有問題的 API 會發(fā)送 400 響應(yīng)以及錯誤消息提交,如果一切正確,則為 200。SQL 代碼在所有情況下都返回一個 NULL 列。目前,我編寫了一個 PHP 應(yīng)用程序,它為我完成了所有這些工作,只是它不是自動化的。該應(yīng)用程序通過 csv 文件運行,并一次向端點發(fā)送一行 json。在我更改它以查看查詢結(jié)果而不是 csv 文件之前,以及在我開始考慮將其添加到 cron 作業(yè)(或者可能是 Windows 中的計劃任務(wù)?)之前,我一直想知道我想要實現(xiàn)的目標(biāo)是否可行使用 SQL Server,這是我所有數(shù)據(jù)的存儲位置。不過,這可能是一個圓釘插入一個方孔,如果是這樣,那么我會打折這種方法。DECLARE @Object AS INT;DECLARE @ResponseText AS VARCHAR(8000);DECLARE @Body AS VARCHAR(8000) = '{    "name": "John",    "age": 30,}'  EXEC sp_OACreate 'MSXML2.XMLHTTP', @Object OUT;EXEC sp_OAMethod @Object, 'open', NULL, 'post','https://webhook.site/1234', 'false'EXEC sp_OAMethod @Object, 'setRequestHeader', null, 'Content-Type', 'application/json'EXEC sp_OAMethod @Object, 'send', null, @bodyEXEC sp_OAMethod @Object, 'responseText', @ResponseText OUTPUTSELECT @ResponseTextEXEC sp_OADestroy @Object理想情況下,我會看到“200”或“400”作為每個請求的響應(yīng),并且我可以在存儲過程運行后解析它們。非常歡迎任何幫助或建議。謝謝
查看完整描述

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


查看完整回答
反對 回復(fù) 2021-11-05
?
夢里花落0921

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'



查看完整回答
反對 回復(fù) 2021-11-05
  • 2 回答
  • 0 關(guān)注
  • 375 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號