微信https从传输流收到意外的 EOF 或 0 个字节。

  今天用webrequest请求微信https api获取token时出现错误。代码错误行(操作系统window7和window2003都会报错)

行 47:             response = request.GetResponse() as HttpWebResponse;

从传输流收到意外的 EOF 或 0 个字节。

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.IO.IOException: 从传输流收到意外的 EOF 或 0 个字节。

[IOException: 从传输流收到意外的 EOF 或 0 个字节。]
[WebException: 基础连接已经关闭: 发送时发生错误。]

  按照网上的方法已经设置了

    public static bool SecurityValidate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
    {
        return true;//直接确认,不然打不开,会出现超时错误
    }
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(SecurityValidate);
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
//...
request.ProtocolVersion = HttpVersion.Version10;
//.....
response = request.GetResponse() as HttpWebResponse;

SSL相关信息,但是还是会出现“从传输流收到意外的 EOF 或 0 个字节”错误。

  后面无意将

//ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
//===>
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
就不报错了,下面2个可以注释掉,不需要设置也行。
request.ProtocolVersion = HttpVersion.Version10;
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(SecurityValidate);

如果使用aps.net的webrequest从微信https API地址获取数据时报错“从传输流收到意外的 EOF 或 0 个字节”,解决办法就是安全协议修改为Tls。

 ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;

 


原创文章,转载请注明出处:微信https从传输流收到意外的 EOF 或 0 个字节。

评论(0)Web开发网
阅读(1374)喜欢(0)Asp.Net/C#