加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

用VC实现POST数据的方法  转

(2011-03-07 00:32:28)
标签:

杂谈

分类: 专业技术杂烩

http://edog.blog.hexun.com/1581458_d.html

用VC或者socket实现GET网页数据的方法用得多了,近日看了一下用VC实现POST网页的方法,总结了以下的一个函数:

#include "afxinet.h"

bool PostData(LPCTSTR host, LPCTSTR object, LPCTSTR postdata, LPCTSTR refererlink, int port)
{
 CString strHeaders = _T("Content-Type: application/x-www-form-urlencoded");
 strHeaders += "\r\nAccept-Language:zh-cn";
 if(refererlink)
 {
  strHeaders += "\r\nReferer:";
  strHeaders += refererlink;
 }
 CString strFormData = _T(postdata);

 CInternetSession session;
 CHttpConnection* pConnection = session.GetHttpConnection(_T(host));
 if(pConnection == NULL) return false;
 CHttpFile* pFile = pConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST, _T(object));
 if(pFile == NULL) return false;

 BOOL result = pFile->SendRequest(strHeaders, (LPVOID)(LPCTSTR)strFormData, strFormData.GetLength());
 if(result == FALSE) return false;

 DWORD dwRet;
 pFile->QueryInfoStatusCode(dwRet);

 CString m_strHtml="";
 char szBuff[1024];
 UINT nRead;
 while ((nRead = pFile->Read(szBuff,1023))>0)
 {
  m_strHtml+=CString(szBuff,nRead);
 }
 FILE *fp = fopen("C:\\11.html", "w");
 fwrite(m_strHtml, 1, m_strHtml.GetLength(), fp);
 fclose(fp);

 if (dwRet == HTTP_STATUS_OK)
 {
  return true;
 }
 return false;
}

0

阅读 收藏 喜欢 打印举报/Report
前一篇:春天到去郊游
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有