2016-09-22 49 views

回答

0

爲連接到一些資源,並獲得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 

你可以通過myuserNamemyPasswordTOKEN作爲變量的URL得到響應。

+0

抱歉,但我沒有工作... 讓我更具體 我有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' –

+0

而且?您可以使用此代碼進行授權。看看編輯。 – gofr1

+0

得到這個錯誤,好像是第三方阻止它 SQL Server阻止訪問組件「Ole Automation Procedures」的過程'sys.sp_OACreate',因爲這個組件被關閉作爲這個服務器的安全配置的一部分 –

相關問題