DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML詳解 >> 用XMLHTTP通過代理服務器從服務提取數據的一些問題
用XMLHTTP通過代理服務器從服務提取數據的一些問題
編輯:XML詳解     

用XMLHTTP通過代理服務器從服務提取數據,比如說從WEBSERVICE、ASP、ASPX提取數據,我在用的時候曾經出現過一些不明問題,往往通不過代理認證。經過多次摸索,終於弄明白其中的原因,現分拿出來分享。

在VB中調用方法是這樣的:

    Dim objHTTP As New XMLHTTP
           
    objHTTP.open "post", http://192.168.1.2/web.asmx, False
    objHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    objHTTP.send (strRequest) '如果上面是“GET”方式發送的,這句是沒有用的,所以得用“POST”方式
    
    returnStr = objHTTP.responseText '以文本的方式返回數據
   

以前看到說是要用proxycfg.exe這個winhttp配置命令來進行配置,實際上這是不正確的,其實是沒有必要的,設不設是一回事,至少在XP系統中是這樣的,只要在IE浏器中設置了正確的代理服務器地址就OK。

而代理服務的用戶名的密碼曾經看到過是這樣發送的:

 objHTTP.open "post", http://192.168.1.2/web.asmx, False,username,passWord

實際上這是錯誤的,這個用戶名和密碼不是發往代理服務器認證,而是發往需要認證用戶的IIS服務器的。代理服務器的用戶名的密碼是不需要設置的,它會像IE通過代理訪問一樣,在需要的時候會彈出用戶名和密碼的輸入框。但我在測試中發現,不同的代理服務器會有所不同,一旦在代理服務器上將認證密碼改動,調試的時候基本上不會調用成功,因為些時程序發往代理服務器的密碼還是原來的,的情況下會有彈出框要求重新輸入密碼,如在用CCPROXY代理服務器的時候,但大多數好像不行。我曾這個地方折騰了好久,一直認為是自己的程序寫得不對,後來發現只要把VB關掉重新打開,就會有輸入框了。原來原因是這樣的,一個程序在調用的時候,會記往原來的用戶名和密碼,如果在中途代理服務器改變了密碼或用戶名,一般情況下程序不會感知,但有些代理服務器可以告知程序重新輸入,但我測試的大多數不行。這時只要重啟程序就OK。

在.NET中情況差不多,我只用過通過WEB引用調用WEBSERVICE,如果有代理服務器,一定要在IE中設置正確,而且一定要先上一下網,把代理服務器的用戶和密碼輸入正確後,在.NET中才能調用成功,因為這.Net中的用戶名和密碼是IE保持同步的,沒用自動調出輸入框來輸入,如果不正確就出錯誤,所以調用的時候一定要用try語句。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved