【问题标题】:WinRT C# - HttpRequestException: error 500WinRT C# - HttpRequestException:错误 500
【发布时间】:2013-04-14 15:37:01
【问题描述】:

我正在尝试将我的 WP8 应用程序移植到 Windows 应用商店应用程序,并且在执行 HttpClient 的 getStringAsync 时收到 HttpRequestException。

这是给我问题的代码 sn-p:

HttpClient client = new HttpClient();
            Stream stream = await client.GetStreamAsync(new Uri("http://www.psnapi.com.ar/ps3/api/psn.asmx/getPSNID?sPSNID=philippemexes", UriKind.Absolute));

这是完整的异常消息:

HttpRequestException:响应状态码不表示成功:500(内部服务器错误)。 我不得不说,指定的 URL 在浏览器中可以正常工作,并且完全相同的代码在 Windows Phone 项目中也可以正常工作。

有谁知道将所需的 xml 转换为字符串的可能解决方案以及为什么这适用于 Windows Phone 而不适用于 WinRT 应用程序?

非常感谢 斯特凡诺

【问题讨论】:

  • 好检查应用程序清单,检查互联网(客户端)的功能选项卡。其次,尝试在此处输入另一个网址,例如“www.google.com”,看看是否可行?
  • 感谢您的回复,Internet(客户端)功能已经启用,我尝试启用 Internet(客户端和服务器)和专用网络,但不幸的是它不起作用。更改网址反而起作用了...所以问题一定是访问该网址,但很奇怪它目前在 windows phone 中工作
  • 好吧,您的代码使服务器崩溃了。如果你想知道原因,那么你不应该问我们,你应该问服务器所有者。他可以查看服务器日志,看看到底出了什么问题。

标签: windows-8 windows-runtime dotnet-httpclient


【解决方案1】:

Fiddler是你的朋友!

当请求标头中没有传递用户代理字符串时,服务似乎不太高兴被调用。尝试添加:

client.DefaultRequestHeaders.Add("user-agent", "blah blah blah");

在您的两行代码之间。 blah blah blah 部分没有什么神奇之处:),它似乎适用于您的服务,但谁知道该服务对 UA 字符串的解释(如果有的话)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-20
    • 1970-01-01
    • 2015-03-28
    • 2020-12-17
    • 2018-08-27
    • 2017-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多