为了账号安全,请及时绑定邮箱和手机立即绑定

HttpWebRequest发送数据超时后修复处理

HttpWebRequest发送数据超时后修复处理

呼啦一阵风 2018-12-07 06:37:46
    最近遇到一个问题请教下,在一个时间控件中写了一个HttpWebRequest以post的形式发送,设置了发送超时5秒,但当我网络不好断了一段时间网络,然后再连接上后,就不可以继续发送请求了,不知道有没有什么可以修复的方法和属性,下面是我的代码段 strParams = HttpUtility.UrlPathEncode(strParams);                       byte[] byteRequest = Encoding.Default.GetBytes(strParams);//编码                     HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(new Uri(consumer.ConsumerAddress.ToString().Trim()));                  httpWebRequest.Credentials = CredentialCache.DefaultCredentials;                 httpWebRequest.ContentType = "application/x-www-form-urlencoded";//这一个参数似乎是必需的。                 httpWebRequest.Method = "POST";//这个是请求方法,必须是POST,这个可以通过分析实际登录的情况得到采用的方法                       httpWebRequest.Timeout = consumer.ConsumerTimeOut;                 httpWebRequest.ContentLength = byteRequest.Length;//POST数据的长度,这个参数是必需的。                               httpWebRequest.ProtocolVersion = HttpVersion.Version10;                 httpWebRequest.KeepAlive = false;                 //下面是发送数据到服务器                            Stream stream = httpWebRequest.GetRequestStream();                              stream.Write(byteRequest, 0, byteRequest.Length);                 stream.Close();                                 HttpWebResponse webResponse = (HttpWebResponse)httpWebRequest.GetResponse();//取服务器的响应                             StreamReader streamReader = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8); 在最后一句会有异常
查看完整描述

4 回答

?
慕斯709654

TA贡献1840条经验 获得超5个赞

可能是时间超时了。你把时间设置长一点。

查看完整回答
反对 回复 2019-01-21
?
Cats萌萌

TA贡献1805条经验 获得超9个赞

你说的修复是把发送失败的数据重新发送一下吗?

如果不是的话  只要有个try catch就可以了啊

查看完整回答
反对 回复 2019-01-21
?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

试试:httpWebRequest.KeepAlive = true;

查看完整回答
反对 回复 2019-01-21
  • 4 回答
  • 0 关注
  • 548 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信