首页 新闻 赞助 找找看

winform发起HTTP请求,第一次正常,第二次发起请求就连不上服务器,并报“操作超时”的异常

0
悬赏园豆:50 [已解决问题] 解决于 2014-05-10 11:41

可能是什么原因导致的这种问题,每次请求的request对象都是重新创建出来的呀,相互之间应该没影响吧,下面是代码

 1      public static HttpWebResponse Post(string urlStr, string param)
 2         {
 3             HttpWebRequest request=null;
 4             HttpWebResponse response = null;
 5             try
 6             {
 7                 //创建一个HTTP请求
 8                 request = (HttpWebRequest)WebRequest.Create(urlStr);
 9                 //request.Timeout = 30000;
10                 //Post请求方式
11                 request.Method = "POST";
12                 //内容类型
13                 request.ContentType = "application/x-www-form-urlencoded";
14 
15                 //将URL编码后的字符串转化为字节
16                 byte[] payload = System.Text.Encoding.UTF8.GetBytes(param);
17                 //设置请求的ContentLength 
18                 request.ContentLength = payload.Length;
19                 //获得请求流
20                 Stream writer = request.GetRequestStream();
21                 //将请求参数写入流
22                 writer.Write(payload, 0, payload.Length);
23                 //关闭请求流
24                 writer.Close();
25 
26                 //发送HttpWebRequest请求,得到HttpWebResponse对象
27                 response = (HttpWebResponse)request.GetResponse();
28             }
29             catch (Exception e)
30             {
31                 throw e;
32             }
33 
34             return response;
35         }
云一样飘过的主页 云一样飘过 | 初学一级 | 园豆:157
提问于:2014-05-10 09:28
< >
分享
最佳答案
0

可能是因为request和response没有释放造成的,在请求处理完毕后对请求调用abort方法 

收获园豆:50
Zery | 大侠五级 |园豆:6151 | 2014-05-10 11:32

嗯,确实是没有调用request.abort()方法,那还想问下,timeout设置为多大合适

云一样飘过 | 园豆:157 (初学一级) | 2014-05-10 11:38

@云一样飘过: 请求一个网页很少超过3秒吧 个人选3秒到5秒

Zery | 园豆:6151 (大侠五级) | 2014-05-10 11:39

@Zery: 嗯,好的,谢谢啦

云一样飘过 | 园豆:157 (初学一级) | 2014-05-10 11:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册