c#http请求会话已过期

时间:2016-10-30 06:50:24

标签: c# session httpwebrequest

我编写的东西可以从网站上收集一些信息。 我的问题是,我总是从网络服务器上解除我的会话过期。能帮我解决这个问题吗?

            CookieContainer container = new CookieContainer();
            HttpWebRequest request = (HttpWebRequest) WebRequest.Create("https://www.eurowings.com/skysales/Deeplink.aspx");
            request.Method = "POST";
            request.CookieContainer = container;
            request.ContentType = "application/x-www-form-urlencoded";
            string postData = "culture=de-DE&o=110&d=TXL&od=2016-11-23&adt=1&chd=0&inf=0&lng=de-DE&t=o";
            byte[] bytes = Encoding.UTF8.GetBytes(postData);
            request.ContentLength = bytes.Length;

            Stream requestStream = request.GetRequestStream();
            requestStream.Write(bytes, 0, bytes.Length);

            WebResponse response = request.GetResponse();
            Stream stream = response.GetResponseStream();
            StreamReader reader = new StreamReader(stream);

            var result = reader.ReadToEnd();
            stream.Dispose();
            reader.Dispose();

1 个答案:

答案 0 :(得分:1)

所以你正在编写一个网络爬虫。

我注意到你根本没有发布会话ID,所以这就是它看起来过期的原因。

您应该对此网站进行两次调用:  1.第一次调用,它将启动一个新的会话,并以某种方式给你会话ID。  2.在寻找航班时,将会话ID附加到您的请求中。