我在 Silverlight 5 中编写了一个用 C# 编写的应用程序(使用 VWD 2012)。
此应用程序使用 HttpClient GetAsync 和 PostAsync 请求“登录”到网站(非常合法)。
但是..当我运行应用程序并遇到一个返回 HTTP 302 响应的网站(即“对象移至此处”)时,我的应用程序只是挂起并且不会“跟随”响应重定向到新 URL。
我怎么知道问题出在 Silverlight 5 上?
因为当我在 Silverlight 5 之外运行相同的应用程序(例如作为控制台应用程序)时,它可以正常工作。
我怎么知道是这些 302 消息有问题?
因为当我在 Silverlight 5 内部运行这个相同的应用程序到另一个不返回 302 的网站时,它可以正常工作。
我是否尝试使用 'catch (HttpRequestException hre)' 或仅使用 'catch' 来捕获错误?是的,但似乎没有发现或捕获错误 =:O((
以下是违规行:
try
{
HttpResponseMessage response = await client.PostAsync(uriPOST, content); // This 'hangs'
}
catch (HttpRequestException hre) // Nothing is ever caught
{
Console.WriteLine(hre.ToString());
}
catch (Exception ex) // Nothing is ever caught
{
Console.WriteLine(ex.ToString());
}
我有一个真正的安全证书附加到 Silverlight 5 应用程序(它工作得很好,因为我可以访问不返回 302 的网站)......
我在 HTTPClient 处理程序中将“AllowAutoRedirect”设置为“true”。
有任何想法吗?为什么这在 Silverlight 5 之外有效,但在 Silverlight 5 内无效?