a867065853 2015-01-13 14:31 采纳率: 0%
浏览 11448

请求https接口的时候提示基础连接已经关闭:连接被意外关闭

我把做好的.net项目部署到IIS上,项目中有POST请求别人的https接口,然后就提示:
基础连接已经关闭:连接被意外关闭,搞了一天了,都不知道怎么解决,望大神来拯救我把

  • 写回答

6条回答 默认 最新

  • a867065853 2015-01-13 14:32
    关注
    private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
        {
            return true; //总是接受
        }
    
    
        public string PostWebRequest(string postUrl, string paramData, Encoding dataEncode)
        {
            // ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
    
    
            //  System.Net.ServicePointManager.CertificatePolicy = new TrustAllCertificatePolicy();
            //utilHelper utilHelper = new DAL.utilHelper();
            //utilHelper.SetCertificatePolicy();
            string ret = string.Empty;
            try
            {
                byte[] byteArray = dataEncode.GetBytes(paramData); //转化
                HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(postUrl);
                if (postUrl.StartsWith("https", StringComparison.OrdinalIgnoreCase))
                {
                    ServicePointManager.ServerCertificateValidationCallback =
                            new RemoteCertificateValidationCallback(CheckValidationResult);
                }
                webReq.KeepAlive = false;
                //webReq.ProtocolVersion = HttpVersion.Version11;
                webReq.Method = "POST";
                webReq.Timeout = 1000000;
                System.Net.ServicePointManager.Expect100Continue = false;
                //  webReq.KeepAlive = false;
                webReq.ContentType = "application/json";// "application/json";//application/x-www-form-urlencoded
                //   ServicePointManager.ServerCertificateValidationCallback = CheckValidationResult;
                //if (postUrl.StartsWith("https", StringComparison.OrdinalIgnoreCase))
                //{
                //    logger.Error("设置了");
    
                //   // webReq.ProtocolVersion = HttpVersion.Version10;
                //}
                webReq.ContentLength = byteArray.Length;
                Stream newStream = webReq.GetRequestStream();
                newStream.Write(byteArray, 0, byteArray.Length);//写入参数
                // newStream.Close();
                HttpWebResponse response = (HttpWebResponse)webReq.GetResponse();
                StreamReader sr = new StreamReader(response.GetResponseStream(), dataEncode);
                ret = sr.ReadToEnd();
                sr.Close();
                response.Close();
                newStream.Close();
            }
            catch (Exception ex)
            {
                logger.Error("POST异常:" + ex.Message);
            }
            return ret;
        }
    
    
                这是我的post请求代码,谁能救救我……
    
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器