【问题标题】:GetStringAsync method in HttpClient throw an exception in WP8HttpClient 中的 GetStringAsync 方法在 WP8 中引发异常
【发布时间】:2026-01-01 13:45:01
【问题描述】:

最近,我为 WP8 开发了一个应用程序,一开始一切正常。但是,从昨天开始,我在尝试从 url 检索 RSS 数据 时遇到错误。

这是我用来获取数据的部分代码:

try
{
   HttpClient client = new HttpClient();
   var result = await client.GetStringAsync("http://www.scoop.it/t/recycling-by-miguel18/rss.xml");
   var parseResult = XDocument.Parse(result);
   . . .
}
catch (Exception ex)
{
   throw new Exception("Error: " + ex.Message);
}

其中 source 是包含获取 RSS 数据的 url 的字符串。 正如所评论的那样,一开始它工作正常,我能够使用它来处理数据。

现在,它会引发以下错误: 响应状态码不表示成功:404()。

如果我将 url 直接放到任何浏览器中,我可以看到 RSS 提要。所以,我不明白代码会有什么问题。我有点失落。

如果你能帮助我找出问题所在,那将非常有帮助

问候!

【问题讨论】:

  • 您希望我们如何帮助您?您只发布了通用的两行代码。
  • 嗨 I4V。我已经更新了代码。基本上,目前使用以下内容:await client.GetStringAsync,是我得到错误的地方。
  • 迈克,你的代码对我有用。你可能被那个网站屏蔽了。
  • 你是在设备上还是在模拟器上运行这个?
  • 我在另一个网站上使用该方法时遇到了同样的错误,但我没有被阻止,因为这是我第一次访问它...有什么建议吗?

标签: c# windows-phone-7 windows-phone-8 windows-phone httpclient


【解决方案1】:

您需要为您的 WP 模拟器提供互联网访问权限。

这篇文章很有帮助

connect WP emulator to internet

【讨论】:

    【解决方案2】:

    您是否尝试添加用户代理标头? 见DownloadString returns a 404 Error: Site needs a User-Agent Header

    大多数网站会阻止某些请求以避免机器人。试试看,请告诉我...

    【讨论】:

      【解决方案3】:

      hmm...我也遇到同样的错误...使用自己的类调用 API,第一次调用 navigatedTo 成功,第二次调用使用按钮单击错误,两者都使用相同的代码。在chrome rest客户端上,url成功。

      【讨论】: