C#之 http请求

今天,遇到一件事情,同事A优化了公司生成迭代报告文档工具的代码。

同事A将代码分享出来以后,发现问题如下:同一个http的request请求,第一次response得到失败的请求结果后,该开发人员使用了同一个request请求,连续循环20次,企图再次能够成功response到结果。

 

众所周知,http协议中,发起一次request请求,无论失败成功,response都会返回,由于http的无状态性,这次会话就算结束了。服务器端已经自动把客户端的这次电话挂断了。

客户端如果有需要,打算再次通话,需要再次拨打电话,发起请求,然后服务器依然response一次,电话挂断。仅此而已。

 

教训:以下代码,while循环自第二次执行开始,就是错误的。

          这个考察的是最基本的知识点,http通讯

            try
            {
                string url = "http://www.baidu.com";
                HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
                request.ContentType = "application/json";
                request.Accept = "text/html,application/xhtml+xml,*/*";
                request.Method = "Get";
                request.Timeout = 30000;
                int i = 0;
                while (i < 20)
                {
                    using (WebResponse response = request.GetResponse() as HttpWebResponse)
                    {
                        Console.Write(response.ToString());
                    }
                    i++;
                }

            }
            catch (Exception ex)
            {
                throw;
            }

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值