我确实拥有HTTP客户端的简易版本,并且通过代理连接存在问题。代理在浏览器中正常工作,但在我的应用程序中无效。
当我正在阅读流时:
private void OnStreamRead(IAsyncResult ar)
{
int read = _stream.EndRead(ar);
我在EndRead上收到下一个异常:
发生了'System.IO.IOException'类型的第一次机会异常 System.dll中
附加信息:收到意外的EOF或0字节 运输流。
此例外仅适用于https网站,仅适用于某些代理。
我发现在使用服务器进行身份验证时,某些问题可能出现在.net中。 我尝试了所有可能的协议类型组合:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
sslStream.AuthenticateAsClient(host, new X509CertificateCollection(), SslProtocols.Tls11, false);
身份验证看起来像这样:
if (clientRequest.IsSSLConnection)
{
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
var sslStream = new SslStream(serverStream, false,
HttpHelper.AcceptAllCertificationsCallback);
sslStream.AuthenticateAsClient(host, new X509CertificateCollection(), SslProtocols.Tls11, false);
serverStream = sslStream;
}
我可以尝试做任何其他想法吗?