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 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)