1
有沒有什麼方法可以直接獲取第三方Web服務XML數據並將其存儲到SQL Server數據庫?如何獲取和存儲來自第三方XML Web服務的數據到SQL表
我知道還有很多其他簡單的解決方案,像Rest或WCF,但在我的情況下,我想將新作業添加到SQL,每天都會觸發並從Web服務獲取數據。
有沒有什麼方法可以直接獲取第三方Web服務XML數據並將其存儲到SQL Server數據庫?如何獲取和存儲來自第三方XML Web服務的數據到SQL表
我知道還有很多其他簡單的解決方案,像Rest或WCF,但在我的情況下,我想將新作業添加到SQL,每天都會觸發並從Web服務獲取數據。
爲連接到一些資源,並獲得XML響應,你可以使用此代碼:
DECLARE @URI nvarchar(max) = 'http://example.com/',
@methodName nvarchar(50) ='GET',
@objectID int,
@setTimeouts nvarchar(255) = 'setTimeouts(9000,90000,900000,9000000)'
EXEC sp_OACreate 'MSXML2.XMLHTTP', @ObjectID OUT
EXEC sp_OAMethod @objectID, 'open', null, @methodName, @URI, 'false'
EXEC sp_OAMethod @objectID, @setTimeouts
EXEC sp_OAMethod @objectID, 'send', null
INSERT INTO SomeTable (xmlResponse)
EXEC sp_OAGetProperty @objectID, 'responseText'
EXEC sp_OAGetErrorInfo @objectID
EXEC sp_OADestroy @objectID
您可以發表評論@setTimeouts
一部分,如果響應時間可能會大是必要的。
把它放在存儲過程中。通過@URI
作爲參數,這將在SomeTable
中寫入響應。然後,您可以將EXEC YourStoredProv @URI
投入工作並計劃每天發佈。
編輯
使用授權:
DECLARE @URI nvarchar(max) = 'http://example.com/',
@auth nvarchar(max),
@methodName nvarchar(50),
@objectID int,
@setTimeouts nvarchar(255) = 'setTimeouts(9000,90000,900000,9000000)'
EXEC sp_OACreate 'MSXML2.XMLHTTP', @ObjectID OUT
SELECT @auth= @URI + 'AppEngine_2/api_login?user_name=myuserName&password=myPassword%20&TOKEN=chinaurl&CLIENT_TYPE=1%22',
@methodName='POST'
EXEC sp_OAMethod @objectID, 'open', null, @methodName, @auth, 'false'
EXEC sp_OAMethod @objectID, 'send', null
SELECT @methodName='GET'
EXEC sp_OAMethod @objectID, 'open', null, @methodName, @URI, 'false'
EXEC sp_OAMethod @objectID, @setTimeouts
EXEC sp_OAMethod @objectID, 'send', null
INSERT INTO SomeTable (xmlResponse)
EXEC sp_OAGetProperty @objectID, 'responseText'
EXEC sp_OAGetErrorInfo @objectID
EXEC sp_OADestroy @objectID
你可以通過myuserName
,myPassword
和TOKEN
作爲變量的URL得到響應。
抱歉,但我沒有工作... 讓我更具體 我有2個網址的 - 首先進行登錄,第二個用於數據 登錄URL =「http://traffilog.com/AppEngine_2/api_login? user_name = myuserName&password = myPassword%20&TOKEN = chinaurl&CLIENT_TYPE = 1「 and data url ='http://traffilog.com/AppEngine_2/API_GETDATA' –
而且?您可以使用此代碼進行授權。看看編輯。 – gofr1
得到這個錯誤,好像是第三方阻止它 SQL Server阻止訪問組件「Ole Automation Procedures」的過程'sys.sp_OACreate',因爲這個組件被關閉作爲這個服務器的安全配置的一部分 –