CRi*_*ice 4 c# asp.net state httpwebrequest httpwebresponse
我有一些链接在一起的HttpWebRequests和HttpWebResponses,也使用CookieContainer.
该代码模拟用户通过三个不同的"我同意"页面设置cookie信息,使用用户名和密码登录第四个,并在第五个上执行POST(搜索),将响应作为字符串返回.
有没有办法可以将HttpWebRequest对象维护为"登录",以避免每次用户执行搜索时都经过这些步骤?
我可以将其设置为静态,如果它的null或缺少cookie信息,它可以运行所有步骤,否则只是做用户需要的帖子?对此有什么好的模式?
如果您登录的服务器使用基于cookie的身份验证,则必须创建一个System.Net.CookieContainer,用于存储身份验证cookie.这很简单:
CookieContainer container = new CookieContainer();
// Create web request
request.CookieContainer = container;
// Create next web request
nextRequest.CookieContainer = container;
// And so on
...
Run Code Online (Sandbox Code Playgroud)
只需为所有HttpWebRequest对象重用CookieContainer对象,并将其保留在内存中供以后使用.
CookieContainer是Serializable,因此如果需要,您可以将其保留在磁盘上.这样,即使用户重新启动应用程序,也可以保留cookie.
或者,如果页面不使用cookie但是将会话ID存储在URL中,则需要保持在您所希望的页面的URL中传递会话ID.只需将其附加到网址即可.:-)
| 归档时间: |
|
| 查看次数: |
1929 次 |
| 最近记录: |