转载,参考一下
2002年的东西。
看我的代码(我宝贵的代码啊~不把分全都给我,我就跟你没完!)
void CInternet::Post(CString& csResponse,//反馈,这个就是你要的
const char *szServer,//服务器
INTERNET_PORT& nPort,//端口
const char* szObject,//URI
const char *szData, //正文内容
DWORD& dwHttpStatus,//状态码
BOOL bAutoRedirect)//是否自动转向
{
CInternetSession* pSession = NULL;
CHttpConnection* pConnection = NULL;
CHttpFile* pHttpFile = NULL;
try
{
pSession = new CInternetSession(
NULL,
1,
INTERNET_OPEN_TYPE_PRECONFIG);
pConnection = pSession-> GetHttpConnection(szServer,
nPort,
NULL,
NULL);
DWORD dwFlag= INTERNET_FLAG_EXISTING_CONNECT
| INTERNET_FLAG_RELOAD
| INTERNET_FLAG_DONT_CACHE;
if(!bAutoRedirect)
{
dwFlag = dwFlag| INTERNET_FLAG_NO_AUTO_REDIRECT;
}
pHttpFile = pConnection-> OpenRequest(
CHttpConnection::HTTP_VERB_POST,
szObject,
szServer,
1,
NULL,
NULL,
dwFlag);
pHttpFile-> AddRequestHeaders( "Content-Type: application/x-www-form-urlencoded ",HTTP_ADDREQ_FLAG_ADD_IF_NEW,-1L);
pHttpFile-> SendRequest(NULL,0,
(void *)szData,
strlen(szData));
if (pHttpFile)
{
if (pHttpFile-> QueryInfoStatusCode(dwHttpStatus)!=0)
{// dwHttpStatus = 200;
if (dwHttpStatus < 400)
{
int nRead = 0;
LPSTR pBuffer = new char[1024];
do
{
nRead = pHttpFile-> Read(pBuffer, 1023);
if (nRead != 0)
{
pBuffer[nRead] = 0;
csResponse += pBuffer;
}
} while (nRead != 0);
if(pBuffer)
{
delete pBuffer;
pBuffer = NULL;
}
}
}
}
}
catch (CInternetException* e)
{
e-> Delete();
}
catch (...)
{
}
if (pHttpFile != NULL)
{
pHttpFile-> Close();
delete pHttpFile;
}
if (pConnection != NULL)
{
pConnection-> Close();
delete pConnection;
}
if (pSession != NULL)
{
pSession-> Close();
delete pSession;
}
}
例子:
CInternet internet;
CString csResponse;
unsigned short nPort = 80;
DWORD dwRes = 0;
internet.Post(csResponse, "www.csdn.net ",nPort, "member/login.asp ", "name=111222&pass=rrrrr ",dwRes,TRUE);
AfxMessageBox(csResponse);