我需要页面A的会话ID才能正确打开页面B。如何获取页面B HTML?

I need a session ID from page A to correctly open page B. How to get page B HTML?

我想先获取B page. Unfortunately site requires to open A页面的HTML代码,然后获取session_id,之后我终于可以打开我想要的网页了。获取B页html码的解决办法是什么?我试着用 WebClient 来做,但是 session_id 可能没有保存。

        var client = new WebClient();
        client.DownloadString("http://moria.umcs.lublin.pl/link/");
        client.DownloadString("http://moria.umcs.lublin.pl/link/grid/1/810");

这取决于服务器如何在您访问页面B时跟踪您已经访问过页面A。

很可能它使用某种 session ID,它可能保存在 cookie 中。在任何浏览器的开发人员工具中检查 HTTP 请求和响应 headers 可以让您了解该网站是如何跟踪用户的。

如果您需要能够在 cookie 中存储 session ID,cookies-aware web-client 示例已给出 here

我会使用 HttpWebRequest 而不是 WebClient。我没有在 WebClient 中看到任何可以获取或设置 cookie 的方法。看看这个 MSDN link。您的初始请求代码类似于 link。对于下一个到另一个页面的请求,使用您从初始请求获得的响应中的 cookie 设置 CookieContainers;在您请求回复之前。

https://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.cookiecontainer(v=vs.110).aspx