MFC HTTP POST转载,参考一下

转载,参考一下

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

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值