gpt4 book ai didi

c# - HttpWebRequest 和 HttpWebResponse : maintaining state of logged in request for consecutive queries

转载 作者:太空狗 更新时间:2023-10-30 01:12:10 26 4
gpt4 key购买 nike

我有几个 HttpWebRequests 和 HttpWebResponses 链接在一起,也使用 CookieContainer。

该代码模拟用户浏览三个不同的“我同意”页面,设置 cookie 信息,在第四个页面使用用户名和密码登录,并在第五个页面执行 POST(搜索)以字符串形式返回响应。

有没有一种方法可以将 HttpWebRequest 对象保持为“登录”状态,以避免每次用户执行搜索时都经过这些步骤?

我可以将它设置为静态吗?如果它为空或缺少 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
...

只需为所有 HttpWebRequest 对象重用 CookieContainer 对象,并将其保存在内存中以备后用。

CookieContainer 是可序列化的,因此您可以根据需要将其保存在磁盘上。这样即使您的用户重新启动您的应用程序,您也可以保留您的 cookie。

或者,如果页面不使用 cookie,而是将 session ID 存储在 url 中,则您需要在您访问的页面的 url 中传递 session id。只需将它附加到 url,它就可以工作。 :-)

关于c# - HttpWebRequest 和 HttpWebResponse : maintaining state of logged in request for consecutive queries,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1036854/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com