69,373
社区成员
发帖
与我相关
我的任务
分享
BOOL PostRequest(LPCTSTR lpszURL, // 如:www.wantsoft.com
LPCTSTR lpszObjectName, // 如index.asp
LPCTSTR lpszOptionalData, // 如:username=chrys&password=MyPassword
LPCTSTR lpszReferer, // 如:/modify-new.htm
CString &csResponse)
{
BOOL bRet = FALSE;
CString csHeaders, csOptionalData = lpszOptionalData, csContentLength;
csContentLength.Format ( "Content-Length: %d\n", csOptionalData.GetLength());
FILE *fp = fopen("rt.html","w+");
csHeaders += "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/x-shockwave-flash, */*\n";
csHeaders += "Referer: http://";
csHeaders += lpszURL;
csHeaders += lpszReferer;
csHeaders += "\n";
csHeaders += "Accept-Language: zh-cn,en-us;q=0.5\n";
csHeaders += "Content-Type: application/x-www-form-urlencoded\n";
csHeaders += "Proxy-Connection: Keep-Alive\n";
csHeaders += "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705; .NET CLR 1.1.4322)\n";
csHeaders += "Host: ";
csHeaders += lpszURL;
csHeaders += "\n";
csHeaders += csContentLength;
csHeaders += "Pragma: no-cache\n";
csHeaders += "\r\n";
CHttpFile* pMyHttpFile = NULL;
CHttpConnection* pConnection = NULL;
CInternetSession mySession;
try
{
mySession.SetOption(INTERNET_OPTION_CONNECT_TIMEOUT, 10*1000);
pConnection = mySession.GetHttpConnection(_T(lpszURL));
pMyHttpFile = pConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST, lpszObjectName);
//
CString str;
pMyHttpFile->ReadString(str);
//
if ( pMyHttpFile->SendRequest(csHeaders,
(LPVOID)(LPCTSTR)csOptionalData, csOptionalData.GetLength()))
{
DWORD dwStatus;
DWORD dwBuffLen = sizeof(dwStatus);
pMyHttpFile->QueryInfo(HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER, &dwStatus, &dwBuffLen);
int ir = GetLastError();
if ( HTTP_STATUS_OK == dwStatus )
{
csResponse.Empty ();
CString myData;
while ( pMyHttpFile->ReadString ( myData ) )
{
csResponse += myData;
}
bRet = TRUE;
}
}
}
catch ( CInternetException* pEx )
{
bRet = FALSE;
TCHAR szErr[1024]={0};
pEx->GetErrorMessage(szErr,1024);
pEx->Delete();
}
if ( pMyHttpFile )
{
pMyHttpFile->Close();
delete pMyHttpFile;
}
if ( pConnection )
{
pConnection->Close();
delete pConnection;
}
mySession.Close();
fprintf(fp,"%s",csResponse.GetBuffer(csResponse.GetLength()));
fclose(fp);
return bRet;
}
BOOL PostRequest(LPCTSTR lpszURL, // 如:www.wantsoft.com
LPCTSTR lpszObjectName, // 如index.asp
LPCTSTR lpszOptionalData, // 如:username=chrys&password=MyPassword
LPCTSTR lpszReferer, // 如:/modify-new.htm
CString &csResponse)
{
BOOL bRet = FALSE;
CString csHeaders, csOptionalData = lpszOptionalData, csContentLength;
csContentLength.Format ( "Content-Length: %d\n", csOptionalData.GetLength());
FILE *fp = fopen("rt.html","w+");
csHeaders += "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/x-shockwave-flash, */*\n";
csHeaders += "Referer: http://";
csHeaders += lpszURL;
csHeaders += lpszReferer;
csHeaders += "\n";
csHeaders += "Accept-Language: zh-cn,en-us;q=0.5\n";
csHeaders += "Content-Type: application/x-www-form-urlencoded\n";
csHeaders += "Proxy-Connection: Keep-Alive\n";
csHeaders += "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705; .NET CLR 1.1.4322)\n";
csHeaders += "Host: ";
csHeaders += lpszURL;
csHeaders += "\n";
csHeaders += csContentLength;
csHeaders += "Pragma: no-cache\n";
csHeaders += "\r\n";
CHttpFile* pMyHttpFile = NULL;
CHttpConnection* pConnection = NULL;
CInternetSession mySession;
try
{
mySession.SetOption(INTERNET_OPTION_CONNECT_TIMEOUT, 10*1000);
pConnection = mySession.GetHttpConnection(_T(lpszURL));
pMyHttpFile = pConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST, lpszObjectName);
//
CString str;
pMyHttpFile->ReadString(str);
//
if ( pMyHttpFile->SendRequest(csHeaders,
(LPVOID)(LPCTSTR)csOptionalData, csOptionalData.GetLength()))
{
DWORD dwStatus;
DWORD dwBuffLen = sizeof(dwStatus);
pMyHttpFile->QueryInfo(HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER, &dwStatus, &dwBuffLen);
int ir = GetLastError();
if ( HTTP_STATUS_OK == dwStatus )
{
csResponse.Empty ();
CString myData;
while ( pMyHttpFile->ReadString ( myData ) )
{
csResponse += myData;
}
bRet = TRUE;
}
}
}
catch ( CInternetException* pEx )
{
bRet = FALSE;
TCHAR szErr[1024]={0};
pEx->GetErrorMessage(szErr,1024);
pEx->Delete();
}
if ( pMyHttpFile )
{
pMyHttpFile->Close();
delete pMyHttpFile;
}
if ( pConnection )
{
pConnection->Close();
delete pConnection;
}
mySession.Close();
fprintf(fp,"%s",csResponse.GetBuffer(csResponse.GetLength()));
fclose(fp);
return bRet;
}