大約3個月,我有一個使用WebClient調用某些HTTPS API的公共應用程序。 直到大約3個星期前,一切正常,但突然間,應用程序停止工作,所有WebClient調用都拋出「遠程服務器返回錯誤:NotFound。」例外。使用WebClient調用HTTPS URL的例外
我沒有以任何方式更新我的應用程序,API沒有更改,我沒有注意到Windows Phone的任何更新。 我提到我的應用程序是針對Windows Phone OS 7.1,我也嘗試使用HttpWebRequest類 - 結果是一樣的。 我的代碼看起來是這樣的:
private void tile_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
WebClient wc = new WebClient();
wc.OpenReadCompleted += new OpenReadCompletedEventHandler(wc_OpenReadCompleted);
wc.OpenReadAsync(new Uri("https://www.google.com"));
}
void wc_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
try {
StreamReader s = new StreamReader(e.Result);
string r = s.ReadToEnd();
MessageBox.Show(r);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
該代碼會在每次它被稱爲與上述異常時失敗。如果我嘗試獲取「http://www.google.com」或任何其他HTTP網址,則代碼將正常工作。 但是,我需要使用HTTPS,因爲我需要通過WebClient調用發送證書。
我在互聯網上發現,去年其他人遇到過這樣的問題,但是這個問題應該在芒果更新中解決。
有沒有人知道如何解決這個問題或任何解決方法,因爲我用盡了想法。
預先感謝您!
問候, 安德烈
我用戶Fiddler(Wireshark)以及我注意到它建立了一個連接,但實際的請求不是從設備發送的。這非常奇怪,因爲相同的代碼在大約2個月內工作正常並且突然停止工作(對於我和我的應用的其他用戶) - 這沒有任何改變。 – AndreiC 2012-04-29 10:38:17
您是否安裝了Fiddler SSL證書?您看到的請求是HTTP握手而非實際的HTTPS請求。在設備/模擬器上,打開瀏覽器並訪問http:// computername:8888 /並單擊「安裝證書」鏈接。之後,你應該能夠得到細節。 – MatthieuGD 2012-04-29 17:18:31
嗨,對於我的回覆延遲抱歉。我在模擬器上安裝了Fiddler證書,並且對https://google.com的呼叫開始工作。然而,在我的公共應用程序中對Delicious API的調用仍然失敗,並顯示相同的消息... – AndreiC 2012-05-02 13:51:28