MFC发送http https以及json解析

域名解析成IP

		char szWeb[128] = "www.baidu.com";struct hostent *pHost = NULL;pHost = gethostbyname(szWeb);//完成主机名到域名的解析char *IP = inet_ntoa(*((struct in_addr *)pHost->h_addr));CString ipStr = IP;

请求三部曲:

1、CInternetSession session;

		CInternetSession session;session.SetOption(INTERNET_OPTION_CONNECT_TIMEOUT, 1000 * 20);

2、CHttpConnection* pConnection;

		CHttpConnection* pConnection;pConnection = session.GetHttpConnection(strServer, wPort);

3、pConnection->OpenRequest

		//httpspConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST, ("post.do"), NULL, 1, NULL, NULL, INTERNET_FLAG_SECURE| INTERNET_FLAG_DONT_CACHE | INTERNET_FLAG_RELOAD | INTERNET_FLAG_IGNORE_CERT_CN_INVALID | INTERNET_FLAG_IGNORE_CERT_DATE_INVALID);//httppConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST, ("post.do"));

4、pFile->SendRequest(szHeaders, (LPVOID)reqchar, strlen(reqchar));

		pFile->SendRequest(szHeaders, (LPVOID)reqchar, strlen(reqchar));

5、pFile->QueryInfoStatusCode(dwRet)

https请求

			CString strURL = "https://209.144.91.204:443/";CString strServer, strObject;INTERNET_PORT wPort;DWORD dwType;if (!AfxParseURL(strURL, dwType, strServer, strObject, wPort)){return false;//URL解析错误}pConnection = session.GetHttpConnection(strServer, wPort);						//二、连接到Http服务器:if (NULL == pConnection){return false;}pFile = pConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST, ("/post.do"), NULL, 1, NULL, NULL, INTERNET_FLAG_SECURE| INTERNET_FLAG_DONT_CACHE | INTERNET_FLAG_RELOAD | INTERNET_FLAG_IGNORE_CERT_CN_INVALID | INTERNET_FLAG_IGNORE_CERT_DATE_INVALID);

http请求

			CString dnsUrl = ipStr + ":80";pConnection = session.GetHttpConnection(url);pFile = pConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST, ("/post.do"));

json解析

			int len = pFile->GetLength();char buf[2048];int numread;Json::Reader jsonReader;Json::Value root;while ((numread = pFile->Read(buf, sizeof(buf) - 1)) > 0){buf[numread] = '\0';strFile += buf;}if (log)AfxMessageBox(strFile);if (jsonReader.parse(buf, root)) {int retCode = root["retcode"].asInt();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/133423.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java学习路线指南

有很多想自学Java或者转行Java的会有很多疑问,笔者在此进行总结。 有很多想自学Java或者转行Java的会有很多疑问,笔者在此进行总结。 Java岗位多,容易找到工作。Java工资天花板高,比如:Java架构师、Java技术总监。Java…

线上JAVA应用平稳运行一段时间后出现JVM崩溃问题 | 京东云技术团队

一、问题是怎么发现的 系统是一个定时任务系统,需要定时执行业务代码,业务代码主要是访问MYSQL数据库和缓存进行操作,该开始启动,系统日志一切正常,但是运行一段时间到凌晨后,系统就自动崩溃了&#xff0c…

取消elementUI中table的选中状态和勾选状态赋值

一、取消所有选中 1、表格上绑定ref 2、清空用户选中数据 this.$refs.loopRef.clearSelection()二、勾选状态赋值 获取数据,flag为true则是选中状态,并将前面勾选框设为选中状态 this.listData.forEach(item> {if(row.flag1){this.$refs.loopRef.to…

JavaEE平台技术——预备知识(Maven、Docker)

JavaEE平台技术——预备知识(Maven、Docker) 1. Maven2. Docker 在观看这个之前,大家请查阅前序内容。 😀JavaEE的渊源 😀😀JavaEE平台技术——预备知识(Web、Sevlet、Tomcat) 1. M…

【漏洞复现】typecho_v1.0-14.10.10_unserialize

感谢互联网提供分享知识与智慧,在法治的社会里,请遵守有关法律法规 文章目录 漏洞利用GetShell 下载链接:https://pan.baidu.com/s/1z0w7ret-uXHMuOZpGYDVlw 提取码:lt7a 首页 漏洞点:/install.php?finish 漏洞利用 …

5+单基因泛癌范文式教学,适合小白学习

今天给同学们分享一篇生信文章“Comprehensive Pan-Cancer Analysis of KIF18A as a Marker for Prognosis and Immunity”,这篇文章发表在Biomolecules期刊上,影响因子为5.5。 结果解读: KIF18A的表达及其在泛癌中的诊断价值 TIMER数据库被…

多模态中各种Fusion方式汇总

多模态中各种Fusion骚操作 大噶好,我是DASOU; 今天继续写多模态系列文章,对多模态感兴趣的可以看我之前的文章: 其实对于多模态来说,主要可以从三个部分去掌握它: 如何获取多模态的表示【learning mult…

【ARFoundation学习笔记】ARFoundation基础(下)

写在前面的话 本系列笔记旨在记录作者在学习Unity中的AR开发过程中需要记录的问题和知识点。难免出现纰漏,更多详细内容请阅读原文。 文章目录 TrackablesTrackableManager可跟踪对象事件管理可跟踪对象 Session管理 Trackables 在AR Foundation中,平面…

GoLong的学习之路(番外)如何使用依赖注入工具:wire

我为什么要直接写番外呢?其原因很简单。项目中会使用,其实在这里大家就可以写一些项目来了。 依赖注入的工具本质思想其实都大差不差。无非控制反转和依赖注入。 文章目录 控制反转为什么需要依赖注入工具 wire的概念提供者(provider&#x…

【计算机网络笔记】TCP的拥塞控制机制

系列文章目录 什么是计算机网络? 什么是网络协议? 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能(1)——速率、带宽、延迟 计算机网络性能(2)…

Linux生成随机密码

cat /dev/urandom|tr -dc [:alnum:]|head -c20 生成20位数字字母的随机密码。 /dev/urandom生成随机数,tr -dc [:alnum:] 保留所有数字和字母,head -c20保留前20位。 使用原生的Linux命令生成可以说是极度安全的,也适用于批量用户生成的情…

Linux文件描述符和打开文件之间的关系

简介 文件描述符和打开的文件之间似乎呈现出一一对应的关系。然而,实际并非如此。多个文件描述符指向同一打开文件,这既有可能,也属必要。这些文件描述符可在相同或不同的进程中打开。 要理解具体情况如何,需要查看由内核维护的…

应用安全四十二:SSO安全

一、什么是SSO SSO是单点登录(Single Sign On)的缩写,是指在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。这种方式减少了由登录产生的时间消耗,辅助了用户管理,是比较流行的企业业务整合的解决方案之一。 身份验证过程依赖于双方之间的信任关…

Spring Boot创建多模块项目

创建一个普通的Spring Boot项目, 然后只留下 pom.xml 剩下的都删掉 删除多余标签 标识当前为父模块 创建子模块 删除子模块中多余标签 声明父模块 在父模块中声明子模块

基于JAVA+SSM的房屋租赁系统

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍: 随着社会的发展和人们…

【C/C++】什么是POD(Plain Old Data)类型

2023年11月6日,周一下午 目录 POD类型的定义标量类型POD类型的特点POD类型的例子整数类型:C 风格的结构体:数组:C 风格的字符串:std::array:使用 memcpy 对 POD 类型进行复制把POD类型存储到文件中,并从文…

webgoat-(A1)SQL Injection

SQL Injection (intro) SQL 命令主要分为三类: 数据操作语言 (DML)DML 语句可用于请求记录 (SELECT)、添加记录 (INSERT)、删除记录 (DELETE) 和修改现有记录 &#xff…

【自我提升】项目升级-Beyond Compare效率工具

写在前面:最近接手一个项目,这个项目集成了许多开源项目,其中我需要对其中一个开源项目进行升级操作。在此记录升级过程和心得,希望可以给各位道友提供一种思路,同时也希望道友有更好的办法能分享在评论区。 项目场景 …

RabiitMQ消息队列系统

一、MQ 1、概念: MQ 全称为 Message Queue (消息队列),是一种应用程序对应用程序的通信方法。MQ 允许应用程序将消息写入队列,其他应用程序从队列中读取并处理这些消息,不需要它们之间直接相互联系。消息队列可用于实现异步通信…

idea Error: java: OutOfMemoryError: insufficient memory处理

IDEA设置里,修改heap size更大一点,可以解决问题