HttpWebResponse response 调试时,程序也不报错,就是不往下走了

时间:2021-12-21 14:39:42
 System.Net.HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                    // 可以将 Method 属性设置为任何 HTTP 1.1 协议谓词:GET、HEAD、POST、PUT、DELETE、TRACE 或 OPTIONS。
                    request.Method = "POST";
                    request.ContentType = "application/json";
                    System.IO.Stream dataStream = request.GetRequestStream();
                    System.Net.HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                    dataStream = response.GetResponseStream();
                    System.IO.StreamReader reader = new System.IO.StreamReader(dataStream, Encoding.UTF8);
                    string responseFromServer = reader.ReadToEnd();
                    reader.Close();
                    reader.Dispose();
                    dataStream.Close();
                    dataStream.Dispose();
                    response.Close();

7 个解决方案

#1


ReadToEnd是阻塞的,服务器一直不返回所以就不走了

#2


GetResponse这个方法也是

#3


等上一段时间就可以了,要么timeout,要么返回数据

#4


根据 msdn的解释
ReadToEnd 假定流在到达末尾时会知道已到达末尾。对于交互式协议(服务器仅当被请求时才发送数据而且不关闭连接),ReadToEnd 可能被无限期阻止,应避免出现这种情况。


1、是不是服务器一直无响应?
2、是不是相应内容超级长,流一直处于度的状态?

3、我目测你的
request.Method = "POST";
应该改成
request.Method = "GET";

#5


Get 我试了 也是报错 ,同时添加了 request.Timeout = 30000;  request.KeepAlive = true; 问题依旧。我是用来获取数据中某一列的值,会不会和我请求太频繁有关系,跑了一万多条数据还没有事,突然就操作超时了,服务器上没有任何的连接数限制和请求限制,大神们,帮帮忙吧

#6


引用 5 楼 kanglicong 的回复:
Get 我试了 也是报错 ,同时添加了 request.Timeout = 30000;  request.KeepAlive = true; 问题依旧。我是用来获取数据中某一列的值,会不会和我请求太频繁有关系,跑了一万多条数据还没有事,突然就操作超时了,服务器上没有任何的连接数限制和请求限制,大神们,帮帮忙吧

TimeOut设的小一点

突然就超时了,你指的是什么突然就超时了?

#7


引用 6 楼 lovelj2012 的回复:
Quote: 引用 5 楼 kanglicong 的回复:

Get 我试了 也是报错 ,同时添加了 request.Timeout = 30000;  request.KeepAlive = true; 问题依旧。我是用来获取数据中某一列的值,会不会和我请求太频繁有关系,跑了一万多条数据还没有事,突然就操作超时了,服务器上没有任何的连接数限制和请求限制,大神们,帮帮忙吧

TimeOut设的小一点

突然就超时了,你指的是什么突然就超时了?

数据跑一万多条没有任何问题,超过一万多 就会提示操作超时,可能和我取得那一列数据有关系,它是消息队列产生的。

#1


ReadToEnd是阻塞的,服务器一直不返回所以就不走了

#2


GetResponse这个方法也是

#3


等上一段时间就可以了,要么timeout,要么返回数据

#4


根据 msdn的解释
ReadToEnd 假定流在到达末尾时会知道已到达末尾。对于交互式协议(服务器仅当被请求时才发送数据而且不关闭连接),ReadToEnd 可能被无限期阻止,应避免出现这种情况。


1、是不是服务器一直无响应?
2、是不是相应内容超级长,流一直处于度的状态?

3、我目测你的
request.Method = "POST";
应该改成
request.Method = "GET";

#5


Get 我试了 也是报错 ,同时添加了 request.Timeout = 30000;  request.KeepAlive = true; 问题依旧。我是用来获取数据中某一列的值,会不会和我请求太频繁有关系,跑了一万多条数据还没有事,突然就操作超时了,服务器上没有任何的连接数限制和请求限制,大神们,帮帮忙吧

#6


引用 5 楼 kanglicong 的回复:
Get 我试了 也是报错 ,同时添加了 request.Timeout = 30000;  request.KeepAlive = true; 问题依旧。我是用来获取数据中某一列的值,会不会和我请求太频繁有关系,跑了一万多条数据还没有事,突然就操作超时了,服务器上没有任何的连接数限制和请求限制,大神们,帮帮忙吧

TimeOut设的小一点

突然就超时了,你指的是什么突然就超时了?

#7


引用 6 楼 lovelj2012 的回复:
Quote: 引用 5 楼 kanglicong 的回复:

Get 我试了 也是报错 ,同时添加了 request.Timeout = 30000;  request.KeepAlive = true; 问题依旧。我是用来获取数据中某一列的值,会不会和我请求太频繁有关系,跑了一万多条数据还没有事,突然就操作超时了,服务器上没有任何的连接数限制和请求限制,大神们,帮帮忙吧

TimeOut设的小一点

突然就超时了,你指的是什么突然就超时了?

数据跑一万多条没有任何问题,超过一万多 就会提示操作超时,可能和我取得那一列数据有关系,它是消息队列产生的。