小弟最近使用winsocket,模拟登陆一些论坛,做一些发帖之类的工作。
    之前都很顺利,能够登陆并且在recv的信息用截取cookie,进行后续的操作。
    但是最近遇到这么个问题,前些天的网站提交用户名和密码的表单,在接收到服务器的回复的Header都有Connection: Keep-Alive,而最近的这个网站提示登陆成功的城市还收到Connection: close的字段,之后貌似服务器就关闭连接,我send任何消息,都没有回复了,这个问题如何处理呢。
递交代码如下,按逻辑大致摘了一些socket初始化的代码,post的内容,和revc的Header都是完整的。CHttp http;
if (!http.Connect("www.51tie.com"))
{
return ;
}
//****登陆****
string Header="POST /member/login.html?f HTTP/1.1\r\n";
Header+="Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap,application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword,*/*\r\n";
Header+="Referer: http://www.51tie.com/member/login.html\r\n";
Header+="Accept-Language: zh-CN\r\n";
Header+="Content-Type: application/x-www-form-urlencoded\r\n";
Header+="Accept-Encoding: gzip, deflate\r\n";
Header+="User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; SE 2.X MetaSr 1.0)\r\n";
Header+="Host: www.51tie.com\r\n";
string Request ="username=XXXXX&password=lala1234&autologin=1&step=2&fromurl=http%3A%2F%2Fcc.51tie.com%2F&imageField.x=28&imageField.y=22\r\n\r\n"; 
ostringstream os;
os << "Content-Length: "<< Request.size()-4 << "\r\n";
Header+=os.str();
Header+="Connection: Keep-Alive\r\n";
Header+="Cache-Control: no-cache\r\n\r\n";
string login = Header +Request;
http.SendData(login.c_str());
string sRecv=http.RecvData();CHttp是构造的一个类把soket的初始等进行了封装。

收到回复:
HTTP/1.1 200 OK
Connection: close
Date: Thu, 13 Oct 2011 06:03:57 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: PHP/5.2.5
Set-Cookie: USR=mra0g8hb%090%091318485837%09http%3A%2F%2Fwww.51tie.com%2Fdo%2Flogin.php%3Ff; expires=Fri, 14-Oct-2011 06:03:57 GMT; path=/; domain=51tie.com
Set-Cookie: d802c_winduser=BlQCAgkHb18JVglQBFACAQADBF0EBwkEVl0LAw1RAgUNBFAHU1VUOg%3D%3D; path=/; domain=51tie.com
Set-Cookie: lastvisit=deleted; expires=Wed, 13-Oct-2010 06:03:56 GMT; path=/; domain=51tie.com
Content-type: text/html回复主体太长了,有提示登陆成功的字样。post格式和内容都是用Visual Sniffer抓包得到的。
为什么这个服务器会关闭连接,其他就不会,难道说我post头不对吗,但是我这些是通过抓取浏览器登陆过程写出来的。
我尝试过再次连接,使用第一连接得到的cookie,进行发帖,但是提示没有登陆,无法后续操作。
如果我想后续操作,该怎么办?