JSONからデータを取得するWP8用のプログラムを開発しています。接続は保護されています (URL は https で始まります)。正常に動作することもありますが、例外を受け取ることもあり
System.Net.WebException: The remote server returned an error: NotFound.
ます。この例外は、すべての https URL へのすべてのリクエストに対して表示され始めます。http URL の場合、すべてうまくいきます。URLはOK、エミュレーター上のIEで開く。証明書に問題がある可能性があると思いますが、なぜ時々機能するのですか?
public static void SendRequest(string requestUrl, Action<Stream, Exception> callback)
{
var targetUri = new Uri(requestUrl);
var request = (HttpWebRequest)WebRequest.Create(targetUri);
request.Method = "POST";
request.BeginGetResponse(ar => ProcessResponse(ar, callback), request);
}
public static void ProcessResponse(IAsyncResult callbackResult, Action<Stream, Exception> callback)
{
try
{
var myRequest = (HttpWebRequest)callbackResult.AsyncState;
var myResponse = (HttpWebResponse)myRequest.EndGetResponse(callbackResult);
callback(myResponse.GetResponseStream(), null);
myResponse.Close();
}
catch (Exception e)
{
callback(Stream.Null, e);
Debug.WriteLine("Error in RequestHelper.ProcessResponse\nErrorMessage - " + e.Message);
}
}
更新:問題は間違いなく SSL 証明書にあります。WebBrowser コントロールで Web ページを開こうとすると、「このサイトのセキュリティ証明書に問題があります。」というメッセージが表示されます。「ウェブサイトに進む」をクリックしましたが、何も変わりません。ページは、エミュレーターの IE で開くことができます。証明書をインストールしようとしました (サイトからエクスポートし、IE でダウンロードしました。証明書が正常に追加されたというメッセージが表示されました。しかし、WebBrowser コントロールにまだエラー メッセージが表示されます。証明書をインストールする方法はありますか?それとも有効性をチェックしませんか?