我有一個基於這個例子中一個簡單的Web API項目: http://aspnet.codeplex.com/sourcecontrol/latest#Samples/WebApi/RelaySample/Program.cs如何使HttpClient中繼流量在Fidder或Charles中顯示?
然而,繼電器正在與本地服務器上面的示例中,我的項目中繼電器正在與外部Web服務器與真實地址; companyX.com
我通過瀏覽器使用的中繼服務(或者,web代理服務),例如,在瀏覽器請求relayService.com/companyX。中繼服務響應來自外部companyX.com站點的數據。
繼電器的偉大工程,但有些標題是不正確的,我需要看什麼HttpClient的被髮送到遠程服務器companyX.com。
在小提琴手或查爾斯,只請求/從我的瀏覽器relayService.com響應被列出,從HttpClient的到relayService.com請求/響應從未顯示出來。
的relayService.com是我的機器上本地運行在IIS7,我使用的hosts文件,直接流量relayService.com。
創建HttpClient的時候我曾嘗試以下幾個變化:
var clientHandler = new HttpClientHandler
{
CookieContainer = cookies,
UseCookies = true,
UseDefaultCredentials = false,
Proxy = new WebProxy("http://localhost:8888"),
UseProxy = true,
AutomaticDecompression = DecompressionMethods.GZip,
AllowAutoRedirect = false,
ClientCertificateOptions = ClientCertificateOption.Automatic
};
HttpClient client = new HttpClient(clientHandler);
UPDATE
如果我改變UseProxy = false
服務繼續工作,當小提琴手是打開還是關閉。
隨着UseProxy = true
那麼該服務會失敗,如果提琴手是開放的,我得到以下錯誤:
Object reference not set to an instance of an object.
at System.DomainNameHelper.IdnEquivalent(String hostname) at System.Net.HttpWebRequest.GetSafeHostAndPort(Uri sourceUri, Boolean addDefaultPort, Boolean forcePunycode) at System.Net.HttpWebRequest.GenerateProxyRequestLine(Int32 headersSize) at System.Net.HttpWebRequest.SerializeHeaders() at System.Net.HttpWebRequest.EndSubmitRequest() at System.Net.Connection.CompleteConnection(Boolean async, HttpWebRequest request)
隨着UseProxy = true
和提琴手是封閉的,我得到以下(明顯)錯誤:
No connection could be made because the target machine actively refused it 127.0.0.1:8888
在同一個解決方案,我使用的HttpWebRequest從網絡上下載數據和不顯示在提琴手,所以它似乎是與HttpClient.GetAsync()的一個問題
我已經在兩臺機器上嘗試了這一結果。
我一直在這個整天掙扎,任何幫助,將不勝感激。
只是爲了回顧: * relayService.com是我的機器上本地運行在IIS7
hosts文件 「127.0.0.1 relayService.com」
relayService.com是MVC Web API網站使用HttpClient.GetAsync()從實時網絡下載內容
提琴手/ Charles在同一臺機器上本地運行
瀏覽器流量到本地relayService.com出現在Fiddler/Charles
HttpClient。獲取網頁流量的GetAsync()不會出現在提琴手/查爾斯
提琴手/查爾斯都是最新版本。
再次感謝
Eric,你好,感謝您的答覆。我已經嘗試過這些建議。但是,我確實修復了它!我沒有解釋爲什麼解決方案可行,但它確實有效。如果您能洞悉任何見解,我將不勝感激。謝謝。 – MCM