bool CAutoReleaseView::InitConnectAndPublish(CString strReqPostURL)
{
WORD wPort = 0;
DWORD dwServiceType = 0;
int nSendDataLen = 0;
CString strPostNetPage;
CString strLanguage = _T(" zh-cn");
CString strServerName;
CString strTemp;
CString m_strReqPostURL;
m_strReqPostURL = _T("http://member.skycn.com/update_send.php");
strReqPostURL = m_strReqPostURL; //##### 此值应从数据库得到,暂时给其赋一个值。
AfxParseURL(m_strReqPostURL, dwServiceType, strServerName, strPostNetPage, wPort);
CInternetSession session;
CHttpConnection *pConnection = session.GetHttpConnection(strServerName); //网站服务器
CHttpFile *pFile = pConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST, strPostNetPage); //直接向发布信息的页面提交数据
//填写HTTP请求头,这些数据可以由抓包分析得到
pFile->AddRequestHeaders("POST " + strPostNetPage + " HTTP/1.1");
pFile->AddRequestHeaders("Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*"); //接收所有类型
// pFile->AddRequestHeaders("Accept: */*");
pFile->AddRequestHeaders("Referer: " + strReqPostURL); //也就是整个URL地址
pFile->AddRequestHeaders("Accept-Language:" + strLanguage);
pFile->AddRequestHeaders("Content-Type: multipart/form-data; boundary=---------------------------7d11dc24268052c"); //接受的类型
pFile->AddRequestHeaders("Accept-Encoding: gzip, deflate");
pFile->AddRequestHeaders("User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
CString strSendData;
if(!GetSendData(strSendData))
{
AfxMessageBox("GetSendData(strSendData) error.............");
}
nSendDataLen = strSendData.GetLength();
strTemp.Format("%d", nSendDataLen);
pFile->AddRequestHeaders("Content-Length: "+strTemp); //数据长度
strTemp.Empty();
pFile->AddRequestHeaders("Connection: Keep-Alive");
pFile->AddRequestHeaders("Cache-Control: no-cache");
//HTTP头后面就应该是真正的数据了,下面strFormData中就是要提交的数据,服务器处理返回的信息在pFile中
pFile->SendRequest(NULL, 0, strSendData.GetBuffer(0), strSendData.GetLength()); //提交所有数据
//处理提交的结果,如果是200就是OK
DWORD dwStatusCode = 0;
pFile->QueryInfoStatusCode(dwStatusCode);
CString str1;
str1.Format("%d", dwStatusCode);
// AfxMessageBox(_T("dwStatusCode = ") + str1);
/*
if(dwStatusCode>=200 && dwStatusCode<=299)
{
AfxMessageBox("Post Success!!!!!!!!!!!!!!!!!");
}
else if(dwStatusCode>=300 && dwStatusCode<=399)
{
AfxMessageBox("重定向,客户端需要根据返回的信息做进一步处理");
}
else if(dwStatusCode>=400 && dwStatusCode<=499)
{
AfxMessageBox("客户端请求出错");
}
else if(dwStatusCode>=500 && dwStatusCode<=599)
{
AfxMessageBox("服务器端出错");
}
*/
//数据读出来后把该关闭的东西都关掉
pFile->Close();
pConnection->Close();
delete pFile;
delete pConnection;
session.Close();
return true;
}
{
WORD wPort = 0;
DWORD dwServiceType = 0;
int nSendDataLen = 0;
CString strPostNetPage;
CString strLanguage = _T(" zh-cn");
CString strServerName;
CString strTemp;
CString m_strReqPostURL;
m_strReqPostURL = _T("http://member.skycn.com/update_send.php");
strReqPostURL = m_strReqPostURL; //##### 此值应从数据库得到,暂时给其赋一个值。
AfxParseURL(m_strReqPostURL, dwServiceType, strServerName, strPostNetPage, wPort);
CInternetSession session;
CHttpConnection *pConnection = session.GetHttpConnection(strServerName); //网站服务器
CHttpFile *pFile = pConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST, strPostNetPage); //直接向发布信息的页面提交数据
//填写HTTP请求头,这些数据可以由抓包分析得到
pFile->AddRequestHeaders("POST " + strPostNetPage + " HTTP/1.1");
pFile->AddRequestHeaders("Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*"); //接收所有类型
// pFile->AddRequestHeaders("Accept: */*");
pFile->AddRequestHeaders("Referer: " + strReqPostURL); //也就是整个URL地址
pFile->AddRequestHeaders("Accept-Language:" + strLanguage);
pFile->AddRequestHeaders("Content-Type: multipart/form-data; boundary=---------------------------7d11dc24268052c"); //接受的类型
pFile->AddRequestHeaders("Accept-Encoding: gzip, deflate");
pFile->AddRequestHeaders("User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
CString strSendData;
if(!GetSendData(strSendData))
{
AfxMessageBox("GetSendData(strSendData) error.............");
}
nSendDataLen = strSendData.GetLength();
strTemp.Format("%d", nSendDataLen);
pFile->AddRequestHeaders("Content-Length: "+strTemp); //数据长度
strTemp.Empty();
pFile->AddRequestHeaders("Connection: Keep-Alive");
pFile->AddRequestHeaders("Cache-Control: no-cache");
//HTTP头后面就应该是真正的数据了,下面strFormData中就是要提交的数据,服务器处理返回的信息在pFile中
pFile->SendRequest(NULL, 0, strSendData.GetBuffer(0), strSendData.GetLength()); //提交所有数据
//处理提交的结果,如果是200就是OK
DWORD dwStatusCode = 0;
pFile->QueryInfoStatusCode(dwStatusCode);
CString str1;
str1.Format("%d", dwStatusCode);
// AfxMessageBox(_T("dwStatusCode = ") + str1);
/*
if(dwStatusCode>=200 && dwStatusCode<=299)
{
AfxMessageBox("Post Success!!!!!!!!!!!!!!!!!");
}
else if(dwStatusCode>=300 && dwStatusCode<=399)
{
AfxMessageBox("重定向,客户端需要根据返回的信息做进一步处理");
}
else if(dwStatusCode>=400 && dwStatusCode<=499)
{
AfxMessageBox("客户端请求出错");
}
else if(dwStatusCode>=500 && dwStatusCode<=599)
{
AfxMessageBox("服务器端出错");
}
*/
//数据读出来后把该关闭的东西都关掉
pFile->Close();
pConnection->Close();
delete pFile;
delete pConnection;
session.Close();
return true;
}