2015-09-24 32 views
1

我有一個觸發對門戶的GET調用的宏。下面是URL結構:WinHTTP請求GET不檢索Excel中的響應VBA

的https:// {} P_URL_PORT/IBM /控制檯/狀態文本=真&類型=集羣&名= {} P_CELL時間& = {} TSTAMP

這裏是我的宏。

Dim WinHttpReq As Object 
Set WinHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1") 
WinHttpReq.Open "GET", strURL, False, userNTID, userPassword 
WinHttpReq.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" 
WinHttpReq.Send 
result1 = WinHttpReq.responseText 

但我沒有得到預期的迴應。它顯示登錄屏幕響應。我嘗試添加POST方法,它將發送登錄URL,用戶名和密碼。但GET調用仍然沒有檢索到實際的響應。

+0

你很可能會錯過一些標題。至少我會添加'WinHttpReq.setRequestHeader「用戶代理」,「Mozilla/4.0(兼容; MSIE 6.0; Windows NT 5.0)」' – jradich1234

+0

我試圖添加請求頭,但我沒有得到預期的響應。 –

回答

0

WinHttpRequest的打開函數不會將用戶名和密碼作爲參數。如果您能夠在Internet Explorer中自動登錄該網站,那麼您可以通過SetAutoLogonPolicy()使用這些設置

注意:自動登錄意味着不是由於cookie而是由代理設置引起的。有時您可以自動登錄到網站,因爲瀏覽器已記住您的上次登錄。

可以肯定: - 關閉所有瀏覽器窗口。打開私人窗口。如果您現在自動登錄,則意味着它在Internet選項中設置,並且SetAutoLogonPolicy()應該可以工作。

Dim URL As String 
    URL = "" 'provide URL 
Dim HDoc As HTMLDocument 
Dim whr As New WinHttpRequest 
whr.Open "GET", URL, False 
whr.SetRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" 
whr.SetAutoLogonPolicy AutoLogonPolicy_Always 
whr.Send 

如果您需要登錄您提供的憑據,然後使用setCredentials方法()。這樣的請求的一個很好的例子可以發現here