【问题标题】:HttpClient POST request to httpsHttpClient POST 请求到 https
【发布时间】:2012-09-12 22:44:35
【问题描述】:

我正在开发一个登录网页并获取一些数据的 WinRT 应用程序。问题是我收到“HttpRequestException:发送请求时出错”消息。代码如下:

Uri url = new Uri("https://miyoigo-b.yoigo.com/selfcare/login");
HttpContent msg = new StringContent("account[cli]=" + number + "&password=" + pass);
HttpClientHandler handler = new HttpClientHandler();
handler.UseDefaultCredentials = true;
handler.UseCookies = true;
handler.CookieContainer = new CookieContainer();

HttpClient req = new HttpClient(handler);
req.DefaultRequestHeaders.Add("Host", "miyoigo-b.yoigo.com");
req.DefaultRequestHeaders.ExpectContinue = false;
HttpResponseMessage response = await req.PostAsync(url, msg);
string responseBody = await response.Content.ReadAsStringAsync();

我已经尝试了很多我在互联网上找到的东西,甚至禁用了我的防火墙,但没有任何效果。我从一个 Windows Phone 应用程序移植了它,它确实适用于这个:

Uri url = new Uri("https://miyoigo-b.yoigo.com/selfcare/login");
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);
req.Method = "POST";
req.Headers["Host"] = "miyoigo-b.yoigo.com";
req.CookieContainer = new CookieContainer();
req.BeginGetRequestStream(new AsyncCallback(WriteCallback), req);

然后,在回调中,我创建了一个流并编写了凭据。

有什么想法吗??我知道问题只出在这个网页上,可能是我忘记发送内容或 POST 内容的格式不正确...

谢谢

【问题讨论】:

  • 有没有更详细的InnerException
  • 我看到一个错误,表明它无法建立 SSL/TLS 安全通道 - 这就是你得到的吗?
  • 您是否在应用的清单中添加了所需的功能?
  • 我添加了“家庭或工作网络”和“Internet(客户端和服务器)”,但我仍然遇到同样的问题
  • 如果您在建立 SSL/TLS 时遇到问题,则意味着您的机器不信任该站点的证书。如果您尝试从浏览器访问该地址会发生什么?

标签: post https windows-8 httpclient


【解决方案1】:

最后的问题是 Win8 Metro Apps 只接受 SSL3.1 而这个网页使用的是 SSL3.0。解决方案是使用新版本的网页。

谢谢大家

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-12
    • 2017-08-02
    相关资源
    最近更新 更多