使用WebClient调用HTTPS URL的异常

时间:2012-04-28 18:57:58

标签: c# .net windows-phone-7 webclient

大约3个月我有一个公共应用程序,它使用WebClient来调用某些HTTPS API。 直到大约3个星期前,一切正常,但突然应用程序停止工作,所有WebClient调用抛出“远程服务器返回错误:NotFound。”异常。

我没有以任何方式更新我的应用,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 URL,代码将正常工作。 但是,我需要使用HTTPS,因为我需要通过WebClient调用发送凭据。

我在互联网上发现其他人去年遇到过这样的问题,但这个问题应该通过芒果更新来解决。

有没有人知道如何解决这个问题或任何解决方法,因为我没有想法。

提前谢谢!

此致 安德烈

1 个答案:

答案 0 :(得分:0)

首先,NotFound错误是一般的错误,以获取使用像Fiddler这样的工具所需的问题的详细信息(使用模拟器:http://blogs.msdn.com/b/fiddler/archive/2010/10/15/fiddler-and-the-windows-phone-emulator.aspx /使用设备:http://blogs.msdn.com/b/fiddler/archive/2011/01/09/debugging-windows-phone-7-device-traffic-with-fiddler.aspx

现在可能是SSL证书的问题?我使用桌面浏览器访问相同的URL您是否收到有关其有效性的警告/错误?如果是这样,你运气不好,因为我不认为你可以在Windows Phone上覆盖证书的验证,就像在台式机上使用fwk一样。

但首先尝试使用Fiddler调试以获取一些细节。