最新消息:

用VC实现POST数据的方法

POST admin 4671浏览 0评论

用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 += "rnAccept-Language:zh-cn";
 if(refererlink)
 {
  strHeaders += "rnReferer:";
  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;
}

转载请注明:爱开源 » 用VC实现POST数据的方法

您必须 登录 才能发表评论!