C# 进行HTTP POST myStreamWriter.Write(postDataStr); 请求被中止: 请求已被取消。

记录下

  public string HttpPost(string Urlstring postDataStr)
        {
 
            System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch();
            watch.Start();
            try
            {
                System.GC.Collect();
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
                request.Method = "POST";
                request.ContentType = "application/json";
                //request.ContentLength = Encoding.UTF8.GetByteCount(postDataStr);
                int a = Encoding.UTF8.GetByteCount(postDataStr);
                request.Timeout = 20 * 600 * 1000;
 
                System.Net.ServicePointManager.Expect100Continue = false;
                System.Net.ServicePointManager.DefaultConnectionLimit = 200;
 
                request.KeepAlive = false;
                request.ProtocolVersion = HttpVersion.Version10;
 
                Stream myRequestStream = request.GetRequestStream();
                StreamWriter myStreamWriter = new StreamWriter(myRequestStreamEncoding.GetEncoding("utf-8"));//如果JSON有中文则是UTF-8
                myStreamWriter.Write(postDataStr);
                myStreamWriter.Close();//请求中止,是因为长度不够,还没写完就关闭了.
 
 
 
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                watch.Stop();  //停止监视
                TimeSpan timespan = watch.Elapsed;  //获取当前实例测量得出的总时间
                System.Diagnostics.Debug.WriteLine("打开窗口代码执行时间:{0}(毫秒)"timespan.TotalMinutes);  //总毫秒数
 
                Stream myResponseStream = response.GetResponseStream();
                StreamReader myStreamReader = new StreamReader(myResponseStreamEncoding.GetEncoding("utf-8"));
                string retString = myStreamReader.ReadToEnd();
                myStreamReader.Close();
                myResponseStream.Close();
                return retString;
            }
            catch (Exception ex)
            {
                throw ex;
                watch.Stop();  //停止监视
                TimeSpan timespan = watch.Elapsed;  //获取当前实例测量得出的总时间
                System.Diagnostics.Debug.WriteLine("打开窗口代码执行时间:{0}(毫秒)"timespan.TotalMinutes);  //总毫秒数
                return "";
            }
        }

JSON序列化C#报错: 在写入所有字节之前不能关闭流  

猜你喜欢

转载自blog.csdn.net/qq_28218253/article/details/80008988
今日推荐