【发布时间】:2014-03-11 20:48:00
【问题描述】:
我正在为 Windows Phone 8 开发的应用程序面临一个非常复杂的问题。以下端点 - http://speedmeter3.internetprovsechny.cz:81/ping/ - 可用于测量连接客户端的延迟。结果存储为 JSON 字符串并返回。但是,为了执行测量,使用了几个 HTTP 302(找到)重定向(总是返回到相同的 URL)。结果在浏览器中正确返回,我已经看到了许多在 Android 上解决类似问题的方法,但没有发现在 Windows Phone 上有效。 这是我应该返回字符串的简单代码 sn-p:
HttpClientHandler handler = new HttpClientHandler();
handler.AllowAutoRedirect = true;
HttpClient client = new HttpClient( handler );
string url = "http://speedmeter3.internetprovsechny.cz:81/ping/";
return await client.GetStringAsync( new Uri( url, UriKind.Absolute ) );
这段代码在 GetStringAsync 方法上挂了一段时间,最终以异常终止:
System.Net.Http.HttpRequestException: Response status code does not indicate success: 302 (Found).
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at IPVSpeedmeter.Helpers.RestClient.<SendGetSafe>d__8.MoveNext()} System.Exception {System.Net.Http.HttpRequestException}
任何能够为此提供解决方案的人都将在可能的情况下获得赏金(三天后;-))。
谢谢大家
【问题讨论】:
标签: c# http windows-phone-8 dotnet-httpclient http-status-code-302