http请求时间较长

77爱吃巧克力 2016-08-17 04:41:30
正常情况下,需要请求http连接,通过得到的返回数据进行运算。现在需要加一个离线模式,在连不上网的情况下也要保证程序运行,Stream txt; txt = request.GetRequestStream(); 这句话运行时间过长,应该怎么解决呢??
...全文
1425 22 打赏 收藏 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
vioalouyang 2016-11-15
  • 打赏
  • 举报
回复
写一个windows服务。把这段代码加到while(true){} 里面。每个一段时间运行一次。
拜一刀 2016-08-18
  • 打赏
  • 举报
回复
不知道你的具体要求,连网也要算,离线也要算,直接把计算放本地处理好了,免得又花时间又花服务器资源 另外是不是应该找找别的判断网络状态的方法..
正怒月神 2016-08-18
  • 打赏
  • 举报
回复
时间长的话,就用异步访问。 不过你也可以试试如何提高你的运行速度。对处理做优化
xiaoqiu_net 2016-08-18
  • 打赏
  • 举报
回复
.NET 4.5 用HttpClient更方便
  • 打赏
  • 举报
回复
引用 6 楼 she6600 的回复:
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url); myRequest.Method = "POST"; myRequest.Timeout = 30000; myRequest.ReadWriteTimeout = 20000;
我是这样设置超时的,如果你想很快的响应这个不现实,毕竟网络响应也需要时间的,除非你设置一个断网标记,当断网的时候,设置标记值,过一段时间,再去请求,看看是否联上互联网
  • 打赏
  • 举报
回复
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url); myRequest.Method = "POST"; myRequest.Timeout = 30000; myRequest.ReadWriteTimeout = 20000;
77爱吃巧克力 2016-08-18
  • 打赏
  • 举报
回复
引用 1 楼 zj_zwl 的回复:
可以设置超时的。timeout 太短还回复不了,怎么想的
timout没有效果
77爱吃巧克力 2016-08-18
  • 打赏
  • 举报
回复
引用 3 楼 FoxDave 的回复:
request的timeout设置一下试试 你是想在离线的情况下请求能快速地抛异常吧?
恩 是的,timout并没有效果,我就是想让程序在没有网的环境下能高效顺利进行,有什么方法么?
Justin-Liu 2016-08-18
  • 打赏
  • 举报
回复
request的timeout设置一下试试 你是想在离线的情况下请求能快速地抛异常吧?
圣殿骑士18 2016-08-18
  • 打赏
  • 举报
回复
引用 18 楼 qq_28744297 的回复:
[quote=引用 16 楼 daixf_csdn 的回复:] [quote=引用 15 楼 qq_28744297 的回复:] [quote=引用 14 楼 daixf_csdn 的回复:] 有没有联网,用ping不就行了吗。 ping www.baidu.com
网站是ping不通的[/quote] 服了你了,我都给你写好了,你不能去试试再评论吗?[/quote] 我所上传信息的网址是没有办法ping通的,而且有的网络连接可以连得上网址,有的就连不上[/quote] 那是你需求没说清楚,你就说判断能不能连上网,我们当然就理解为是因特网,而不是你说的某个特定网站。 如果就是判断internet连接状态,你还怕百度倒闭了ping不通吗?
小K的大师兄 2016-08-18
  • 打赏
  • 举报
回复
多线程啊 单独启用一个线程去执行你这个请求。
维秀斯丢丢 2016-08-18
  • 打赏
  • 举报
回复
多线程。不解释。
77爱吃巧克力 2016-08-18
  • 打赏
  • 举报
回复
引用 16 楼 daixf_csdn 的回复:
[quote=引用 15 楼 qq_28744297 的回复:] [quote=引用 14 楼 daixf_csdn 的回复:] 有没有联网,用ping不就行了吗。 ping www.baidu.com
网站是ping不通的[/quote] 服了你了,我都给你写好了,你不能去试试再评论吗?[/quote] 我所上传信息的网址是没有办法ping通的,而且有的网络连接可以连得上网址,有的就连不上
xuzuning 2016-08-18
  • 打赏
  • 举报
回复
        #region 检查是否联网
        [DllImport("wininet.dll")]
        private extern static bool InternetGetConnectedState(int Description, int ReservedValue);
        /// <summary>
        /// 用于检查网络是否可以连接互联网,true表示连接成功,false表示连接失败 
        /// </summary>
        /// <returns></returns>
        public static bool IsConnectInternet()
        {
            int Description = 0;
            return InternetGetConnectedState(Description, 0);
        }
        #endregion
圣殿骑士18 2016-08-18
  • 打赏
  • 举报
回复
引用 15 楼 qq_28744297 的回复:
[quote=引用 14 楼 daixf_csdn 的回复:] 有没有联网,用ping不就行了吗。 ping www.baidu.com
网站是ping不通的[/quote] 服了你了,我都给你写好了,你不能去试试再评论吗?
77爱吃巧克力 2016-08-18
  • 打赏
  • 举报
回复
引用 14 楼 daixf_csdn 的回复:
有没有联网,用ping不就行了吗。 ping www.baidu.com
网站是ping不通的
圣殿骑士18 2016-08-18
  • 打赏
  • 举报
回复
有没有联网,用ping不就行了吗。 ping www.baidu.com
我叫小菜菜 2016-08-18
  • 打赏
  • 举报
回复
判断网络状态吧
  • 打赏
  • 举报
回复
你怎么判断连不上网? 你的逻辑完全是无厘头的。你说“我想在拉完屎之后再出门”,然后你又骗要出门之前不拉屎,然后求人给你解释这个问题?
kingslander 2016-08-18
  • 打赏
  • 举报
回复
用try catch来抓timeoutexception可以判断是否有联网。但你不可能让用户看着白页等timeout,建议使用async的思路,可以研究下c#里async和await的用法。
加载更多回复(2)

111,128

社区成员

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

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

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