通过Post方式访问Web页面

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

总有些人问我关于通过Post方式向Page页提交参数的方法,下面我写了一个函数,供一些初学者参考。

//****************************************************************************************//
//函数 PostData
//主要功能: Post方式向服务器传数据
//参数列表:
//    1、strUrl:提交地址
//    2、strPara:提交的参数
//    3、strContent:返回的网页内容
//返回值: 如果成功则返回true
//备注:
//****************************************************************************************//
bool PostData(CString strUrl, const CString &strPara, CString &strContent)
{
   
bool bRet = false;
    CString strServer, strObject, strHeader, strRet;
    unsigned
short nPort;
    DWORD dwServiceType;
   
if(!AfxParseURL(strUrl, dwServiceType, strServer, strObject, nPort))//不是有效有网络地址!
        return false;

    CInternetSession sess;
//Create session
    CHttpFile* pFile = NULL;
    CHttpConnection
*pServer = sess.GetHttpConnection(strServer, nPort);
   
if(pServer == NULL)//连接服务器失败!
        return false;

    pFile
= pServer->OpenRequest(CHttpConnection::HTTP_VERB_POST,strObject,NULL,1,NULL,NULL,INTERNET_FLAG_EXISTING_CONNECT);
   
if(pFile == NULL)//找不到网络地址
        return false;

    pFile
-> AddRequestHeaders("Content-Type: application/x-www-form-urlencoded");
    pFile
-> AddRequestHeaders("Accept: */*");
    pFile
-> SendRequest(NULL,0,(LPTSTR)(LPCTSTR)strPara, strPara.GetLength());

    CString strSentence;
    DWORD dwStatus;
    DWORD dwBuffLen
= sizeof(dwStatus);
    BOOL bSuccess
= pFile->QueryInfo(
        HTTP_QUERY_STATUS_CODE
|HTTP_QUERY_FLAG_NUMBER,
       
&dwStatus, &dwBuffLen);

   
if( bSuccess && dwStatus>=  200 && dwStatus<300)
    {
       
char buffer[2049];
        memset(buffer,
0, 2049);
       
int nReadCount = 0;
       
while((nReadCount = pFile->Read(buffer, 2048)) > 0)
        {
            strContent
+= buffer;
            memset(buffer,
0, 2049);
        }
        bRet
= true;
    }
   
else//错误
        bRet = false;
    pFile
->Close();
    sess.Close();
   
return bRet;
}

postboy:免费的在线HTTP请求客户端 立即下载

相关推荐

wordpress custom post type 学习 参考 网站

现在来深刻理解custom post type,现在主要的参考网站如下: http://codex.wordpress.org/Post_Types http://www.netmagazine.com/tutorials/create-wordpress-custom-post-type http://www.codeproject.com/Articles/367402/How-to-U

2736

11. requests.post()函数访问网页(小白入门)

网页的请求方式为get时,我们可以使用浏览器里的url。网页的请求方式post时,我们所需的url是【Headers】下【Request URL】后面的网址。

weixin_63986098的博客 1万+

POST教程笔记 - POST方式登录网站

www.cctry.com post教程 注意,本文章并非教程 // 在 http://www.idc3389.com/user/modify.asp 源码 // 中找用户数据 CString findUserinfo(CString strElemet,CString strHtmlSrc) { if (strElemet == L"" || strHtmlSr...

1313

WordPress 自定义文章类型(Post Type)

WordPress 自定义文章类型(Post Type)

youcijibi的博客 1万+

鸿蒙API13开发【加速Web页面访问】ArkWeb开发

Web页面加载缓慢时,可以使用预连接、预加载和预获取post请求的能力加速Web页面访问

bbq的博客 942

鸿蒙开发进阶(HarmonyOS )加速Web页面访问

Web页面加载缓慢时,可以使用预连接、预加载和预获取post请求的能力加速Web页面访问

m0_67143533的博客 1204

鸿蒙5.0版开发:应用框架ArkWeb开发-加速Web页面访问

Web页面加载缓慢时,可以使用预连接、预加载和预获取post请求的能力加速Web页面访问

m0_73088370的博客 1107

鸿蒙0基础学习【加速Web页面访问】ArkUI

Web页面加载缓慢时,可以使用预连接、预加载和预获取post请求的能力加速Web页面访问

zhenggaoxiao232的博客 528

鸿蒙next开发:ArkWeb-加速Web页面访问

本文详细介绍了鸿蒙HarmonyOS中Web组件性能优化的四种核心技术

qq_39652397的博客 882

SpringBoot中post请求报405错误排坑

SpringBoot 405 post方法不被支持

tiancao222的博客 9893

java web简答(极其重要)

在不同的转换单元中通过请求作用域的对象或隐含变量进行数据的传递和共享。答:在DataSource中事先建立数据库连接,将这些连接保存在连接池中,当java程序访问数据库时,就从连接池中取出空闲状态的连接,当我们的程序访问结束时,再把这些数据库连接放回连接池,从而提高访问数据库的效率。答:在DataSource中事先建立数据库连接,将这些连接保存在连接池中,当java程序访问数据库时,就从连接池中取出空闲状态的连接,当我们的程序访问结束时,再把这些数据库连接放回连接池,从而提高访问数据库的效率。

m0_68447809的博客 2317

Web服务基础与http协议

Web服务基础与http协议一、DNS1.1 域名与IP地址简介1.2 申请阿里云域名二、DNS解析的三种方式2.1 /etc/hosts2.2 /etc/resovl.conf2.3 在网卡配置文件中定义三、域名服务与域名注册3.1 域名3.2 域名服务3.3 域名注册四、页面访问(HTTP/HTTPS)4.1.网页基本概念4.2.HTML五、Web5.1 web概述5.2 Web1.0 和Web2.05.3 静态页面和动态页面5.3.1 静态页面定义5.3.2 静态页面特点5.3.3 动态页面5.3.4

L2111533547的博客 900

Web基础与HTTP协议

引言: 介绍Web基础知识,包括域名的概念、DNS原理、静态网页和动态网页的相关知识。 一、DNS与域名 1.域名和IP地址简介 网络上交互是基于TCP/IP协议的,每个主机在逻辑上有一个唯一位置标识(地址),物理地址为NAC地址。 为了保证地址唯一性,用户协议向特地的机构申请注册,分配IP地址网络中的地址有两套方案: IP地址系统、域名地址系统。 而由于IP是由32位二进制数字标识,不方便记忆,所以、以IP地址为基础发展出了符号化地址来代替解决方案,也是是域名。 2.阿里云域名怎么申请 申

weixin_67470255的博客 377

页面跳转之转发和重定向+Servlet中文乱码问题

转发与重定向的区别 区别1:转发是发送1次请求,重定向是发送2次请求 区别2:转发可以访问WEB-INF下的页面(受保护的页面),重定向不可以访问 区别3:重定向可以访问外部服务器,转发不可以访问

GL280599ZL的博客 1514

web基础与HTTP协议

一、DNS与域名 1、域名的概念 网络是基于 TCP/IP 协议进行通信和连接的,每一台主机都有一个唯一的固定的 IP 地址,以区别于网络上成千上万个用户和计算机。 网络中的地址方案分为两套:IP 地址系统和域名地址系统,两套地址系统是一一对应的。 由于 IP 地址是数字标识,使用时难以记忆和书写,因此在IP地址的基础上发展出一种符号化的地址方案,来代替数字型的IP地址。 每个符号化的地址都与特定的 IP 地址对应,这样网络上资源访问起来就比较容易的多,这个与网络上的数字型,IP地址相对应的字符型

weixin_56270746的博客 1768

java web 笔记1

浏览器(客户端)可以直接访问 WebContent中的文件,但是不能直接访问WEB—INF中的文件。 原因在于WEB—INF中的权限比较高,只能通过请求转发来访问。 跳转有两种方式(请求转发和重定向)。请求转发可以访问,重定向不能进行访问。 统一字符集编码: a.编码分类: 设置jsp文件的编码(jsp文件中的pageEncoding属性): jsp->java 设置浏览器读取jsp文件...

一夜奈何梁山 483

20220321 java学习笔记----JAVA Web

Web应用 :客户端,服务器端 浏览器:完成与服务器的交互、完成对HTML的解析 页面访问的处理流程 HTTP中的GET方法与POST方法有什么区别 在URL后,并且用“?”,各个变量之间用“?”, GET是最简单的一种请求方法,功能:从服务器端获取用户所需的资源,并将其作为响应放回给客户端。 POST:不但可以获取资源也可以给服务器上传资源。(建议使用POST) 区别: 1.GET方法向服务器上传数据时,数据量小,在1024Byte POST方法传递数据时通过HTTP请求,数量量

qq_42847719的博客 470
上一篇: 手机游戏开发
下一篇: VC双缓冲绘图
xsc2001
博客等级 码龄25年 255粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值