C# 中httpwebresponse 遇到302跳转,响应时间会很长

willhuo 2014-11-10 01:57:11
            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(urlStr);
request.Method = "POST";
request.AllowAutoRedirect = true;
request.Accept = "text/html, application/xhtml+xml, */*";
request.Referer = urlStr;
request.Headers.Add("Accept-Language", "zh-CN");
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko";
request.ContentType = "application/x-www-form-urlencoded";
request.KeepAlive = true;
request.Host = hostStr;
request.CookieContainer = cc;
request.ContentLength = buff.Length;

Stream s = request.GetRequestStream();
s.Write(buff, 0, buff.Length);

textBox1.AppendText(DateTime.Now+"开始response\r\n");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
textBox1.AppendText(DateTime.Now+"结束response\r\n");
cookies = response.Cookies;
string cookieStr = response.Headers.Get("Set-Cookie");
textBox1.AppendText("cookieStr:"+cookieStr+"\r\n");
foreach (var v in cookies)
{
textBox1.AppendText("cookie:"+v.ToString()+"\r\n");
}

s.Close();
response.Close();


问题在于当进行POST操作以后,会被要求进行重定向,也就是http的302代码。
重定向的地址是GET方式访问的,我用fiddler跟踪了。
用浏览器的方式访问这个地址,也会自动重定向,但是速度很快。
如果用代码的方式处理,速度会很慢,等待相应的时间为31秒。
我做了多次测试,相应时间均为31秒。
以下方法已经尝试过,失败:
增加request.timeout=5000; //延时五秒,无效,并且导致response超时异常
往请求的header里边增加 request.header.add("Accetp-Encoding","gzip,deflate"); 无效,这个只是编码的问题

还有就是我我做过遇到302中断的操作,该方法表示可能存在或多或少的问题,描述如下
如果request.AllowAutoRedirect=false; 表示不跳转
但是如果不跳转,我后续做的事情受影响。。。所以必须要访问跳转地址
有人提示,在中断跳转后增加一次对302跳转地址的访问
我尝试过了,但是好像通过fiddler跟踪不到后来这一次的302地址的访问。
根据程序的反馈信息,确实能够访问成功
但是接下来我要做的事情,或多或少的也存在很大的影响。。。

接下来的事情就是我提取cookie,然后利用webbrowser控件来访问另外一个地址。有时候可以访问成功,有时候会失败。。


所以,如果能解决掉response响应时间过长的问题,接下来的操作将会很顺利了。。。希望有大神能不厌其烦的看完我写的问题。
...全文
985 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
willhuo 2014-11-10
  • 打赏
  • 举报
回复
引用 4 楼 WM_JAWIN 的回复:
request.ServicePoint.Expect100Continue = false;
神一般的男子。。。 你终于粗线了。。。。 以前也遇到过这个东西,只不过是用wirshark抓包才能看见这个东西,fiddler好像看不见这个东西 那个时候,连看都没看,直接抄上了。。。。 感谢大神
hhh380283926 2014-11-10
  • 打赏
  • 举报
回复
嗯 已经看完了
willhuo 2014-11-10
  • 打赏
  • 举报
回复
引用 2 楼 sp1234 的回复:
嗯,如果對 HttpWebReqeust 不滿意,應該搜一搜沒有替代 HttpWebRequest 的類庫。如果有c#代碼開源的最好。實在不行,就自己使用 TcpClient 封裝一個出來,其實也不是狠麻煩。 --------------------------------------------------------------------------------------------------------- 尼玛,csdn能不能告诉我上面这段话(原来的简体中文内容)有什么“非法词组”不许我发言吗?!
我想不出来还能有啥能代替,如果用socket写的话,会很麻烦的。很多东西都需自己来写,数据的提交,接受并解析,然后模仿302跳转,然后获取数据,解析cookie。。。想想就。。。想撞墙
於黾 2014-11-10
  • 打赏
  • 举报
回复
非法词组多着呢 比如 代*表 开*源
WM_JAWIN 2014-11-10
  • 打赏
  • 举报
回复
request.ServicePoint.Expect100Continue = false;
  • 打赏
  • 举报
回复
总是不告诉“哪一个是非法词组”,这很令人讨厌。哪怕你把我的文字中的非法词组改成*****然后反馈给我也行啊! csdn真应该把网页(回复后)刷新速度提高10倍、用户体验提高一些。而且不要把左边那些漂亮的图片变成“脏兮兮、灰蒙蒙、抠抠搜搜”的外行图片。许多东西需要改进,而我看它的程序员很懒。
  • 打赏
  • 举报
回复
嗯,如果對 HttpWebReqeust 不滿意,應該搜一搜沒有替代 HttpWebRequest 的類庫。如果有c#代碼開源的最好。實在不行,就自己使用 TcpClient 封裝一個出來,其實也不是狠麻煩。 --------------------------------------------------------------------------------------------------------- 尼玛,csdn能不能告诉我上面这段话(原来的简体中文内容)有什么“非法词组”不许我发言吗?!
willhuo 2014-11-10
  • 打赏
  • 举报
回复
POST地址为这个,是POST登陆操作 http://www.game2.cn/logWebsite.php?skin=kt&gid=111&gc=mycs&fm=1>=3107 会自动跳转的
内容概要:LTK8319是一款单通道H桥有刷直流电机驱动器,工作电压范围为2.5V至12V,支持最高3.9A的峰值电流和2.5A的平均电流驱动能力,适用于小家电、玩具、电子锁、机器人等小型电动设备。该芯片通过两个逻辑输入(INA和INB)控制电机的正转、反转、停止与刹车,并支持PWM调速控制。集成欠压锁定(UVLO)、过温保护(TSD)及自动故障恢复功能,确保系统安全可靠运行。当INA和INB持续为低电平时,芯片进入低功耗休眠模式,显著降低静态功耗。采用ESOP-8封装,符合环保无铅标准。; 适合人群:电子工程师、嵌入式系统开发者、电机控制技术人员,以及从事小型机电产品研发的设计人员;具备基本电路知识和电机控制经验者更佳。; 使用场景及目标:①用于驱动小型有刷直流电机或步进电机的一个绕组,实现精确的方向与速度控制;②适用于电池供电设备对功耗敏感的应用,利用休眠模式延长续航时间;③在电机启停频繁、负载波动大的场合,发挥其电流控制与保护机制优势,提升系统稳定性。; 阅读建议:此文档提供了详细的电气特性、功能逻辑表、保护机制与时序参数,建议结合典型应用电路进行硬件设计,并重点关注电源去耦电容选型、散热布局及PWM频率设置(不超过100kHz),以确保系统可靠运行。
内容概要:本文研究了一种基于遗传算法(GA)与粒子群优化算法(PSO)融合的无人机三维路径规划方法,旨在解决复杂环境无人机避障与路径优化的问题。通过构建三维空间环境模型,提出一种结合GA全局搜索能力强与PSO收敛速度快优势的混合优化策略,并利用Matlab平台完成算法仿真与路径可视化。研究不仅实现了无人机在存在多个障碍物场景下的安全、高效飞行路径规划,还对GA与PSO两种算法在路径长度、计算耗时、收敛稳定性等方面进行了对比分析,评估其性能差异,为实际应用算法选型提供依据。; 适合人群:具备一定算法设计基础和Matlab编程能力的科研人员、自动化与人工智能方向的研究生,以及从事无人机导航、智能控制等相关领域的工程技术人员。; 使用场景及目标:①应用于城市密集建筑区、山地森林等复杂地形的无人机自主巡检与应急救援任务;②为智能交通、地理测绘、灾害监测等需要自主路径决策的无人系统提供算法支持与仿真验证;③通过对比不同智能优化算法的表现,辅助研究人员在特定应用场景下选择最优路径规划方案。; 阅读建议:建议读者结合提供的Matlab代码进行仿真实验,调整种群规模、迭代次数、障碍物分布等参数,深入理解算法运行机制与性能表现,并可进一步拓展至动态环境更新、多无人机协同避障等更复杂的研究方向。

111,129

社区成员

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

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

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