POST方式发送数据

POST方式和GET的区别就是把发送的数据和网页地址分离开来。把数据放在HTTP协议的head部分,因此程序中多了一个 strHeaders = _T("Content-Type: application/x-www-form-urlencoded") 这个内容你还可以根据你的需要来改变,例如改为图像,或者二进制文件等。
下面源程序中与上一页“GET方式发送数据”不同的地方我都用蓝色标出;其中strFormData就是要发送的格式,内容是“
curl=中国人&http=http://www.chinaren.comc&url=松鼠之家&http=http://www.fadshop.net/squirrel/&curl=新语丝&http=http://www.xys.org ” 当然你需要根据你的需要来组织这里的内容。
#ifndef _DEBUG
    strHttpName="http://www.fadshop.net/curl/progsave.asp";
#else
    strHttpName = "http://Mycomputer/fadshop/curl/progsave.asp";
#endif
//    strHttpName = strHttpName + "?" + strFormData;
用GET方式发送数据就采用这句话

    CInternetSession sess;//建立会话
    CHttpFile* fileGet;
    CString strHeaders =
          _T("Content-Type: application/x-www-form-urlencoded");
    CException* e;
    TRY
    {
        fileGet=(CHttpFile*)sess.OpenURL(strHttpName);//打开文件
    }
    CATCH_ALL(e)
    {
        TRACE("Err:%d/n", GetLastError());
        fileGet = 0;
    }
    END_CATCH_ALL
    if(fileGet)
    {
        DWORD dwStatus;
        DWORD dwBuffLen = sizeof(dwStatus);
        BOOL bSuccess = fileGet->QueryInfo(
            HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER,
            &dwStatus, &dwBuffLen);
        strGetSentence = "";
        if( bSuccess && dwStatus>= 200 &&dwStatus<300 ) { 
            BOOL result = fileGet->SendRequest(strHeaders,
               (LPVOID)(LPCTSTR)strFormData, strFormData.GetLength());
            while(fileGet->ReadString(strSentence)){
                strGetSentence =  strGetSentence + strSentence + char(13) +
            char(10);
            }//取得返回的字节并显示 SetDlgItemText(IDC_COMMENT,
            strGetSentence); SetDlgItemText(IDC_UPLOADMSG,
        "上传完毕,松鼠谢谢您的合作。"); }// if
        bSuccess.
            else SetDlgItemText(IDC_UPLOADMSG,
        "上传出错/n请下次再执行,或者到松鼠之家查看最新信息。");fileGet->Close();
        delete fileGet;
    }
    else
        SetDlgItemText(IDC_UPLOADMSG, "网络不通,请检查你的网络连接情况。");
    sess.Close();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值