GetLoginCookies(); //先用GET方式去得登录cookie,保存在m_LoginCookie
AfxMessageBox(m_LoginCookie); //这步做个获得cookie的实验
CString strPostRequestLine = _T("/checkGameLogin.xhtml;"); //构造请求头字符串
strPostRequestLine += m_LoginCookie; //拼接m_LoginCookie,因为下一步的POST请求头中要求有这个cookie
AfxMessageBox(strPostRequestLine); //再看看拼接后的字符串。
......CHttpFile* pFile = mHttpConnect->OpenRequest(CHttpConnection::HTTP_VERB_POST,strPostRequestLine);
......
程序执行后,用抓包工具看到(Request-Line):POST /checkGameLogin.xhtml;%20JSESSIONID=25E7800EB2E6BE939E969CB249B64448.tomcat1 HTTP/1.1
为什么我发的数据里多了%20这几个字符呢?而在AfxMessageBox(strPostRequestLine); 这步中显示的是正确。Cookiecstring
if(pFile->QueryInfo(HTTP_QUERY_RAW_HEADERS_CRLF, strStatus))
{
int begin = strStatus.Find(_T("Set-Cookie:"),0) + CString("Set-Cookie:").GetLength();
int end = strStatus.Find(_T(";"),begin+1);
m_LoginCookie = strStatus.Mid(begin,end-begin);
}会不会是在这里截取cookie字符串时有问题呢?