C# 中httpwebresponse 遇到302跳转,响应时间会很长
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响应时间过长的问题,接下来的操作将会很顺利了。。。希望有大神能不厌其烦的看完我写的问题。
相关推荐
C# Http Post Get
- GET 请求的 URL 可能会很长,因此需要注意 URL 的长度限制。- 对于敏感操作(如登录),应考虑使用 HTTPS 来保护通信安全。
C#使用HttpWebRequest重定向方法详解
C# 使用 HttpWebRequest 重定向方法详解C# 中的 HttpWebRequest 组件是.NET Framework 中的一部分,位于 System.Net 命名空间中。它提供了对
C#获取html页面源码
当服务器返回301或302状态码时,客户端会自动跟踪重定向。- **`Timeout` 和 `ReadWriteTimeout`**: 分别设置连接超时时间和读写操作超时时间。
网页状态码(当参考用)
对于C#和.NET开发者,可以使用HttpWebResponse类获取HTTP响应,其中包含了响应的状态码。
超扭滑模与快速终端滑模的永磁同步电机无感控制:理论、离散化实现与仿真研究(Simulink仿真实现)
内容概要:本文聚焦于超扭滑模控制(STSMC)与快速终端滑模控制(FTSMC)在永磁同步电机(PMSM)无位置传感器控制中的应用,系统地开展了理论分析、离散化实现与Simulink仿真实验研究。重点探讨了这两种高阶滑模控制策略在零低速工况下的控制性能,通过设计基于磁链观测器的无感估计算法,实现了对电机转子位置与速度的精确估计,有效规避了传统机械传感器带来的成本增加与可靠性下降问题。文中详尽阐述了控制算法的数学建模与推导过程,并针对数字控制系统的特点进行了严谨的离散化处理,最终在Simulink环境中搭建了完整的电机控制仿真模型,通过对比实验全面评估了不同控制策略在动态响应速度、抗外部干扰能力和稳态控制精度等方面的综合性能。; 适合人群:具备自动控制理论、电机驱动原理等专业知识,并熟悉MATLAB/Simulink仿真环境操作的电气工程、自动化等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①深入研究超扭滑模与快速终端滑模等高阶滑模控制理论在高性能电机驱动系统中的具体应用与实现方法;②掌握永磁同步电机在零低速段无位置传感器控制的核心算法,特别是基于磁链观测的转子状态估算技术;③学习如何将连续域的先进控制理论转化为适用于实际数字控制器的离散化算法,并完成从理论到仿真的完整闭环验证。; 阅读建议:此文理论深度与实践操作紧密结合,读者应重点关注控制算法的设计思想、离散化实现的关键步骤以及Simulink仿真模型的构建细节,建议在阅读过程中动手复现仿真模型,通过调整控制器参数来深入理解各模块的功能作用及系统整体的动静态性能表现。


