向页面提交POST请求后,怎么接受返回的数据?

zw 2002-03-15 05:04:01
CString strData;
...

URL="…….asp"
CHttpFile* pFile = pConnection->OpenRequest
( CHttpConnection::HTTP_VERB_POST, URL);

BOOL result = pFile->SendRequest(strHeaders,
(LPVOID)(LPCTSTR)strData, strData.GetLength());
然后该怎么接收URL指定的页面的数据?
...全文
516 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
111222 2002-03-15
  • 打赏
  • 举报
回复
例子:

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);
111222 2002-03-15
  • 打赏
  • 举报
回复
看我的代码(我宝贵的代码啊~不把分全都给我,我就跟你没完!)


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;
}
}

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧