Windows 8.1 Windows.Web.HTTP.HTTPClient - 安全到非安全重定向异常

时间:2014-07-23 07:34:37

标签: windows-runtime windows-8.1

我正在构建Windows 8.1应用程序并使用Windows.Web.HTTP.HTTPClient API与自定义SSO登录服务进行通信。它从HTTP重定向到HTTP。它与System.Net.HTTP一起工作正常。然而,HTTPClient API使用Windows.Web.HTTP.HTTPClient API提供异常。

网址 - https://sso.rumba.int.pearsoncmg.com/sso/loginService?service=http://www.google.com?authservice=rumbasso&username=may23_rumba_edu1&password=pass&gateway=true

我收到异常 - “无法找到与此错误代码关联的文本。\ r \ n \ r \ n重定向请求会将安全更改为非安全连接\ r \ n”

代码段

var baseFilter = new HttpBaseProtocolFilter();
baseFilter.AllowAutoRedirect = true;
var httpClient = new HttpClient(baseFilter)
serverURI = new Uri("https://sso.rumba.int.pearsoncmg.com/sso/loginService?service=http://www.google.com?authservice=rumbasso&username=may23_rumba_edu1&password=pass&gateway=true");
HttpResponseMessage response = await httpClient.GetAsync(serverURI);

请告知我可以采取哪些措施来解决此问题。

1 个答案:

答案 0 :(得分:1)

作为一种解决方法,您可以禁用自动重定向并手动执行重定向。

var filter = new HttpBaseProtocolFilter();
filter.AllowAutoRedirect = false;
var client = new HttpClient(filter);
var response = await client.GetAsync("the url");
var location = response.Headers["location"];
response = await client.GetAsync(new Uri(location)).AsTask(cancellationToken, progress);
return await response.Content.ReadAsBufferAsync();

希望它有所帮助, 如果您找到了更智能的解决方案,请告诉我。

阿尔瓦罗。