httpwebrequest异常问题

lwqwag 2018-04-25 12:47:08
有时候(少数时候)请求会抛出异常,但是firefox浏览器却不会,还有就是把网线拔掉再插上又可以正常了,有遇到相同问题吗?换了.net版本还是不行
...全文
523 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lwqwag 2018-04-25
  • 打赏
  • 举报
回复
lwqwag 2018-04-25
  • 打赏
  • 举报
回复
暂时只捕获到e.Response是null,e的的具体信息日志没有记录下来
秋的红果实 2018-04-25
  • 打赏
  • 举报
回复
抛出什么具体异常了? 要想办法捕捉这个信息
lwqwag 2018-04-25
  • 打赏
  • 举报
回复

 public static T RequestGet<T>(string url, string user,string password, ref int status)
        {
            string retval = null;
            StringBuilder builder = new StringBuilder();
            builder.Append(url);
            builder.AppendFormat($"{user}?password={password}");
            GC.Collect();
            var request = (HttpWebRequest)WebRequest.Create(builder.ToString());
            try
            {
               
                request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
                request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
                request.Headers.Add(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2");
                request.Headers.Add(HttpRequestHeader.CacheControl, "no-cache");
                System.Net.ServicePointManager.DefaultConnectionLimit = int.MaxValue;
                ServicePointManager.Expect100Continue = false;
                request.KeepAlive = false;
                request.Method = "GET";
                request.ContentType = "application/json; charset=UTF-8";
                request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0";
                request.Proxy = null;
                request.Timeout = 4000;
                System.Threading.Thread.Sleep(200);
                using (var Response = (HttpWebResponse)request.GetResponse())
                {
                    using (var reader = new StreamReader(Response.GetResponseStream(), Encoding.UTF8))
                    {
                        retval = reader.ReadToEnd();
                        //reader.Dispose();
                        //reader.Close();
                    }
                    status = (int)Response.StatusCode;
                    //Response.Dispose();
                    //Response.Close();
                }
                T t = Newtonsoft.Json.JsonConvert.DeserializeObject<T>(retval);
                return t;
            }
            catch (WebException e)
            {
                if (e.Response == null)
                {
                    status = 300;
                    return default(T);
                }
                var rsp = e.Response as HttpWebResponse;

                var httpStatusCode = (int)rsp.StatusCode;
                status = httpStatusCode;
                retval = e.Message;
            }
            finally
            {
                request.Abort();
                request = null;
            }
            return default(T);
        }
一秒请求一次,第283次请求就有异常了 引发的异常:“System.Net.WebException”(位于 System.dll 中) 283 引发的异常:“System.Net.WebException”(位于 System.dll 中) 621 引发的异常:“System.Net.WebException”(位于 System.dll 中) 645 引发的异常:“System.Net.WebException”(位于 System.dll 中) 647 引发的异常:“System.Net.WebException”(位于 System.dll 中) 650 线程 0x2c0c 已退出,返回值为 0 (0x0)。 引发的异常:“System.Net.WebException”(位于 System.dll 中) 706 引发的异常:“System.Net.WebException”(位于 System.dll 中) 734 引发的异常:“System.Net.WebException”(位于 System.dll 中) 736 引发的异常:“System.Net.WebException”(位于 System.dll 中) 742 线程 0x1390 已退出,返回值为 0 (0x0)。 引发的异常:“System.Net.WebException”(位于 System.dll 中) 895

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧