c# 接受响应无法接收到html,而用python就可以。
用python和c#做一样的事情,抓包看是同样的请求。但是c#的response没有html。
有点迷惑,是c#自动滤过了html相关的东西吗?求解!!!
private void PostLogout(object sender, RoutedEventArgs e)
{
CookieContainer cc = GetJSESSIONID();
HttpWebRequest request = null;
HttpWebResponse response = null;
try
{
string Url = "http://service2.swu.edu.cn/selfservice/module/webcontent/web/onlinedevice_list.jsf";
request = (HttpWebRequest) WebRequest.Create(Url);
request.Method = "GET";
request.Host = "service2.swu.edu.cn";
request.KeepAlive = true;
request.Headers.Add("Upgrade-Insecure-Requests: 1");
request.UserAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64)";
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";
request.Headers.Add("Accept-Encoding: gzip, deflate, sdch");
request.Headers.Add("Accept-Language: zh-CN,zh;q=0.8");
request.Headers.Add("DNT: 1");
request.CookieContainer = cc;
response = (HttpWebResponse) request.GetResponse();
Stream ResponseStream = response.GetResponseStream();
StreamReader StreamReader = new StreamReader(ResponseStream);
string retString = StreamReader.ReadToEnd();
string RegexStr =
@"<input[/s]id=""[/S]+?5e46ff2b57b349f90157c2dc05be366e0""[/S/s]+?value=""([/S]+?)""[/S/s]+?value=""([/S]+?)""[/S/s]+?value=""([/S]+?)""[/S/s]+?id=""creatTime[/S/s]+?value=""([/S/s]+?)""";
Match mat = Regex.Match(retString, RegexStr);
textBox1.AppendText(mat.Groups[1].Value);
textBox1.AppendText(retString);
request.Abort();
response.Close();
StreamReader.Close();
}
catch (WebException ex)
{
MessageBox.Show(ex.Message, string.Format("出错"));
}
}