转载,参考一下
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);