首页 > 编程资源分享区 > C/C++源代码共享 > 利用vc向html文件提交表单
2006
07-24

利用vc向html文件提交表单


 主题:c++ | 作者:loserwang | 标签: | 浏览(121) | 评论(0) | 06-29 16:30
Project –> settings –> link (Object/library modules) 加入WININET.LIB


#include <afxinet.h>


CString strHeaders =_T(“Content-Type: application/x-www-form-urlencoded”);
  // URL-encoded form variables -
  CString strFormData = _T(“Content=1&FatherID=4868″);


  CInternetSession session;
  CHttpConnection* pConnection = session.GetHttpConnection(_T(“www.abc.com“));
  CHttpFile* pFile =
    pConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST, _T(“/abc/abc.asp”));
  BOOL result = pFile->SendRequest(strHeaders,(LPVOID)(LPCTSTR)strFormDat a, strFormData.GetLength());
 
//我给一个简单一点的(MFC):


#include “afxinet.h”


void SubmitWebFormData(void)
{
        CString strFormData;
        CString strHeaders;
        CInternetSession session;
        CHttpConnection *pConnection;
        CHttpFile *pFile;
        BOOL result;


        //假设name的值是”YourName”
        strFormData=_T(“name=YourName”)
        strHeaders=_T(“Content-Type: application/x-www-form-urlencoded”);


        try
        {
                 //假设连接到http://127.0.0.1
                 pConnection=session.GetHttpConnection(_T(“127.0.0.1″));
        }
        catch(CInternetException *pEx)
        {
                 //异常处理……
        }
        try
        {
                 //假设响应表单的页面文件叫FileName.asp
                 pFile=pConnection->OpenRequest(CHttpConnection::HTTP_VERB _POST,
                         _T(“/FileName.asp”));
        }
        catch(CInternetException *pEx)
        {
                 //异常处理……
        }
        try
        {
                 result = pFile->SendRequest(strHeaders,(LPVOID)(LPCTSTR)strFormDat a,
                         strFormData.GetLength());
        }
        catch(CInternetException *pEx)
        {
                 //异常处理……
        }
        //善后处理……
}
//////////////////////////////////////////////
Get Method
//////////////////////////////////////////////


 CString address_str;
 m_address.GetWindowText(address_str);
 if(address_str.GetLength()==0)
 {
  MessageBox(_T(“地址栏没有输入”));
  m_address.GetFocus();
  return;
 }
 CString result_str;
 CInternetSession mySession;
 CHttpResponse res;
 res.
 CString myData;
 CHttpFile* myHttpFile=(CHttpFile*)mySession.OpenURL(address_str);
 for(int i=0;i<200&&myHttpFile->ReadString(myData);i++)
 {
  result_str+=myData+”\r\n”;    //因为每次只能读取一行,所以要循环读取数据
 }
 myHttpFile->Close();
 delete [] myHttpFile;
 mySession.Close();
 m_result.SetWindowText(result


留下一个回复