|
27驿站币
这个功能是自动注册的 我模拟post 跟抓包一模一样 可是服务器返回值老是提示用用户名格式不对。 输入验证码和用户名请求服务器时候, 服务器放回来是确定。 但是提交的时候就不行。 哪位高人指点一下
感激不尽
下面是关键代码
CString getSubmitRegContent()
{
CString content = "";
CString useNameStr;
CString usePwdStr;
CString codeStr;
CString wefsdfasStr = "黄三";
CString idcardStr = "14010719890101669x";
gThis->GetDlgItem(IDC_EDIT_CODE)->GetWindowText(codeStr);
gThis->GetDlgItem(IDC_EDIT_USER)->GetWindowText(useNameStr);
gThis->GetDlgItem(IDC_EDIT_PWD)->GetWindowText(usePwdStr);
CString contentPassLevel;
contentPassLevel.Format("%s\"passwdlevel\"\r\n\r\n1\r\n", boundary);
CString contentForward;
contentForward.Format("%s\"forward\"\r\n\r\n\r\n", boundary);
CString contentPagefrom;
contentPagefrom.Format("%s\"pagefrom\"\r\n\r\n105\r\n", boundary);
CString contentUsername;
contentUsername.Format("%s\"username\"\r\n\r\n%s\r\n", boundary, useNameStr);
CString contentUserpwd;
contentUserpwd.Format("%s\"userpwd\"\r\n\r\n%s\r\n", boundary, usePwdStr);
CString contentRepwd;
contentRepwd.Format("%s\"repwd\"\r\n\r\n%s\r\n", boundary, usePwdStr);
CString contentWefsdfas;
contentWefsdfas.Format("%s\"wefsdfas\"\r\n\r\n%s\r\n", boundary, wefsdfasStr);
CString contentIdcard;
contentIdcard.Format("%s\"idcard\"\r\n\r\n%s\r\n", boundary, idcardStr);
CString contentCode;
contentCode.Format("%s\"code\"\r\n\r\n%s\r\n", boundary, codeStr);
CString contentbutton;
contentbutton.Format("%s\"button2\"\r\n\r\n\r\n", boundary);
content = contentPassLevel + contentForward + contentPagefrom + contentUsername + contentUserpwd \
+ contentRepwd + contentWefsdfas + contentIdcard + contentCode + contentbutton + \
"------WebKitFormBoundaryy4rv3ckfdMboMVzs--\r\n";
//AfxMessageBox(content);
return content;
}
UINT submitReg(IWinHttpRequestPtr& pHttpReq)
{
if (!pHttpReq) return FALSE;
HRESULT hr = S_FALSE;
hr = pHttpReq->Open(_T("POST"),_T("URL地址"));
if (FAILED(hr) || jSessionID == "") return FALSE;
CString codeStr;
CString useNameStr;
gThis->GetDlgItem(IDC_EDIT_CODE)->GetWindowText(codeStr);
gThis->GetDlgItem(IDC_EDIT_USER)->GetWindowText(useNameStr);
CString cookieStr;
cookieStr.Format("username_type=0; username=%s; code_type=0; code=%s; ; guanwangvisit=isvisited; %s", useNameStr, codeStr, jSessionID);
pHttpReq->SetRequestHeader(_T("Content-Type"), _T("multipart/form-data; boundary=----WebKitFormBoundaryy4rv3ckfdMboVNzs"));
pHttpReq->SetRequestHeader(_T("Accept"), _T("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"));
pHttpReq->SetRequestHeader(_T("Accept-Language"), _T("zh-CN,zh;q=0.8"));
pHttpReq->SetRequestHeader(_T("User-Agent"), (LPCTSTR)AGENT_STRING);
pHttpReq->SetRequestHeader(_T("Host"), _T("passport.aiaigame.com"));
pHttpReq->SetRequestHeader(_T("Referer"), _T("URL地址"));
pHttpReq->SetRequestHeader(_T("Connection"), _T("keep-alive"));
pHttpReq->SetRequestHeader(_T("Cookie"), LPCTSTR(cookieStr));
//pHttpReq->SetRequestHeader(_T("Content-Length"), LPCTSTR("1042"));
//pHttpReq->SetRequestHeader(_T("Accept-Encoding"), LPCTSTR("gzip,deflate,sdch"));
pHttpReq->SetRequestHeader(_T("Cache-Control"), _T("max-age=0"));
pHttpReq->SetRequestHeader(_T("Origin"), _T("URL地址"));
CString contentStr = getSubmitRegContent();
if (contentStr == "")return FALSE;
hr = pHttpReq->Send(LPCTSTR(contentStr));
if (FAILED(hr)) return FALSE;
return TRUE;
} |
上一篇: 入门级问题下一篇: 为什么会多输出一行
|