HTTP / .NET:如何发布一些数据然后在该会话中工作?

时间:2010-01-28 04:56:20

标签: .net http

我需要以编程方式下载一堆HTML页面,但它们是在登录后面。所以我需要......我认为......就是要做到以下几点。

  1. 使用HTTP POST上传一些表单数据,包括用户名/密码。
  2. 以某种方式捕获会话。饼干?
  3. 发送一系列HTTP GET以下载我需要的页面。
  4. #3很容易,我一直这样做。我不知道如何做#1和2。

    P.S。我也会说“嘿,假的,只是使用程序等等来抓取网站。”

1 个答案:

答案 0 :(得分:2)

您需要使用CookieContainer。您可以在HttpWebRequest上设置它,它将收集响应中收到的任何cookie。然后,如果您在后续请求中设置相同的CookieContainer实例,它会将这些cookie发布回服务器。

您也可以使用比HttpWebRequest简单得多的WebClient,但为了设置CookieContainer,您需要从WebClient派生并覆盖受保护的GetWebRequest方法。

至于发布表单字段等数据,我建议在浏览器中运行Fiddler并查看浏览器发布的内容。然后,您将知道要在POST数据中包含哪些内容。