C++进行http登录后,保持session再发贴。[220分],该如何处理

C++进行http登录后,保持session再发贴。[220分]
很多人说登录后取得返回的cookie然后再发贴时把这cookie设计入head之类的,我按做了。
如下代码哪错了?我登录成功后再post,就是显示没有权限。
明显这个连接就约于前面登录没用了。是哪步错了?

网上很多贴都是登录就完事了,那个谁都会。还有人只说到cookie或用sniff之类的查response就没下文了。
请帮忙者指出错的地方或给你真的能运行的代码(登录后通用同样有权限去发贴!!!)

!!!!解决后,别外两个贴加分!!!!

CInternetSession m_InetSession(_T("session"),0,INTERNET_OPEN_TYPE_PRECONFIG,NULL,NULL,INTERNET_FLAG_DONT_CACHE);  

CHttpConnection * pServer = NULL; // Server
CHttpFile * pFile = NULL; // HTTP File
CString strHtml = ""; // Recv Data
CString strHeaders = "Connection: Keep-Alive\r\n";
CString strRequest = "action=login&I_sid="+ m_strUser +"&I_password="+ m_strPassword;
try{
 
INTERNET_PORT nPort;
nPort=80;
DWORD dwRet;
int nRead = 0;
CString strLine;

pServer = m_InetSession.GetHttpConnection("192.168.1.100", nPort);
pFile = pServer->OpenRequest(CHttpConnection::HTTP_VERB_POST,"/login.jsp");
pFile->AddRequestHeaders(strHeaders);
pFile->SendRequestEx(strRequest.GetLength()+1);
pFile->WriteString(strRequest);
pFile->EndRequest();

pFile->QueryInfoStatusCode(dwRet);

//该段if好像执行后,后面另一个链接的readString好像会返回501错误;
if(dwRet == HTTP_STATUS_OK)
{
while ((nRead = pFile->ReadString(strLine))>0)
{
strHtml += strLine;
}
}

char * pszURL = "http://192.168.1.100/";
CString strCookie;
BOOL bRes = CInternetSession::GetCookie(pszURL,"",strCookie);

pFile=pServer->OpenRequest(CHttpConnection::HTTP_VERB_POST,"/post.jsp");
pFile->AddRequestHeaders("Set-Cookie: "+strCookie +" ; Path=/");
pFile->AddRequestHeaders("Cookie: "+strCookie); 
pFile->SendRequest();

strHtml="";
while ((nRead = pFile->ReadString(strLine))>0)
{
strHtml += strLine;
}

MessageBox(strHtml);//显示无权


------解决方案--------------------
抓个包对比一下数据哪里不一样不就很清楚了
------解决方案--------------------
HTTP1.1有专门的协议,可以查看国标
实际也是一些字符串的组合,基本格式如下:

//1,get请求
//2, Accept
//3, Referer
//4, User-Agent
//5, Host
//6, Connection
//7, Cache-Control
//8, Cookie
我曾经通过TCP连接,发送如上内容(填充后)实现浏览网页和提交表单申请
最重要的部分是cookie一定要正确
------解决方案--------------------
看来你根本不乐意去分析需要提交的表单。
我上面代码是我将163blog的内容导入到csdn,并且自动创建分类。
我也是费了好大劲才成功的,发布C#代码,只是让你去观察隐藏的表单,以及提交的步骤。

我最后发布的代码的意思是:
1. 使用登录成功后的session,请求发帖的页面。
2. 将发帖页面返回的session保存,并且分析发帖页面明显的以及隐藏的表单。
3. 将所有form之间的input属性的东东一律提交post给form指定的接收地址action。
4. 返回的session同意要保存下来,替换前面旧的。

我只告诉你思路,至于登录和操作163的代码,我不打算发出来了。

------解决方案--------------------
我是读响应头,保存相应cookie,在发贴时把cookie加入请求头