HttpWebRequest 基础连接已经关闭: 接收时发生错误

技术分享
HttpWebRequest request = null;
            Stream webStream = null;
            HttpWebResponse response = null;
            StreamReader reader = null;
            string responseString = "";

            try
            {
                byte[] bf = Encoding.UTF8.GetBytes(postString);
                request = WebRequest.Create(url) as HttpWebRequest;
                request.Method = "POST";
                request.ServicePoint.Expect100Continue = false;
                request.Timeout = 1000 * 3;
                request.ContentType = "application/x-www-form-urlencoded";
                request.KeepAlive = false;
                request.ProtocolVersion = HttpVersion.Version11;  
                request.ContentLength = bf.Length;
                webStream = request.GetRequestStream();
                webStream.Write(bf, 0, bf.Length);

                response = (HttpWebResponse)request.GetResponse();
                reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);

                responseString = reader.ReadToEnd();

                Log.Info(responseString);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                request.Abort();
                request = null;
                if (webStream != null)
                {
                    webStream.Close();
                }
                if (reader != null)
                {
                    reader.Close();
                }
                if (response != null)
                {
                    response.Close();
                    response = null;
                }
            }

            

            //解析
            JavaScriptSerializer jsonConvert = new JavaScriptSerializer();
            dynamic responseObj = jsonConvert.DeserializeObject(responseString);
            if (responseObj is Dictionary<string, object>)
            {
                Dictionary<string, object> jsonobj = (Dictionary<string, object>)responseObj;
                message.ResponseMessage = string.Format("[{0}]"+jsonobj["ResultDesc"].ToString(),DateTime.Now.ToString());
            }
View Code

 

在调试短信通信接口的时候出现 “基础连接已经关闭: 接收时发生错误”

研究很长时间 ,没找到原因,查找网上解决方案,其中一位仁兄的方案提供了帮助,这里友情连接一下:http://blog.csdn.net/liehuo123/article/details/7071636

 

总结一下原因,可能是必须指定双方http协议相同。

网上还有其他的解决方案,如

MyRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)";

这个没试过。

诸君如果以上方式不能解决,请请教百度君。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。