用c语言实现https通信,C/C++实现HTTPS通信

2023-05-16

#include "afxinet.h"

CInternetSession mysession;

CHttpConnection *myconn;

CString VoidText;

CString strSentence, strGetSentence;

int _my;

CString Call_Url = "www.zc91.cn";

INTERNET_PORT nPort;

DWORD dwServiceType;

CString strServerName;

CString str ;

DWORD _dwStatus, _dwStatusLen;

CString _Url, _UrlHttp = "https://";

_Url.Format("%s%s", _UrlHttp, Call_Url);//这里拼成的字符串是"https://www.zc91.cn/"

BOOL _GetParse = AfxParseURL(_Url, dwServiceType, strServerName, str , nPort);//调用解析URL方法,自动得到端口号

BOOL _session = mysession.SetOption(INTERNET_OPTION_CONNECT_TIMEOUT, 1000 * 20); //设置连接超时20秒

_session = mysession.EnableStatusCallback(TRUE);

myconn = mysession.GetHttpConnection(Call_Url, INTERNET_FLAG_SECURE, nPort, NULL, NULL);//连接https服务器

CHttpFile* myfile = myconn->OpenRequest(CHttpConnection::HTTP_VERB_POST, "/hys.php", NULL, 1,

NULL, NULL, INTERNET_FLAG_SECURE |

INTERNET_FLAG_EXISTING_CONNECT |

INTERNET_FLAG_RELOAD |

INTERNET_FLAG_NO_CACHE_WRITE |

INTERNET_FLAG_IGNORE_CERT_DATE_INVALID |

INTERNET_FLAG_IGNORE_CERT_CN_INVALID/*| INTERNET_FLAG_TRANSFER_ASCII*/);//打开请求 ,这几个标识都要加上

try

{

DWORD dwFlags;

BOOL _query = myfile->QueryOption(INTERNET_OPTION_SECURITY_FLAGS | INTERNET_OPTION_SECURITY_CERTIFICATE, dwFlags); //认证作者无效或者不正确

dwFlags |= SECURITY_FLAG_IGNORE_UNKNOWN_CA; //查询选择项

_my = myfile->SetOption(INTERNET_OPTION_SECURITY_FLAGS, dwFlags);//设置选择项

CString _Content = "Accept: */*\r\nUser-Agent:Jinhill Http Agent\r\nContent-Type: application/x-www-form-urlencoded";

CString SendStr;

SendStr.Format("action=submitted&mu=%s&type=m3u8", "url");

if (myfile->SendRequest(_Content, (LPVOID)(LPCTSTR)SendStr, SendStr.GetLength()))//发送数据内容

{

myfile->QueryInfo(HTTP_QUERY_FLAG_NUMBER | HTTP_QUERY_STATUS_CODE,

&_dwStatus, &_dwStatusLen, 0); //这里可以看到是否发送成功 _dwStatus 等于200时成功

//MessageBox("消息传递完成!");

}

while (myfile->ReadString(strSentence))//读取接收到的方法

{

strGetSentence += strSentence;

}

}

catch (CInternetException *e) {

e->ReportError();

//TCHAR szErr[1024];

//if (e->GetErrorMessage(szErr, sizeof(szErr)))

// AfxMessageBox(szErr); //这个看看具体错误

//e->Delete();

}

delete myfile;

myfile = NULL;

delete myconn;

myconn = NULL;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用c语言实现https通信,C/C++实现HTTPS通信 的相关文章

随机推荐

  • 华为手机一键解锁工具箱下载 | 华为手机解BL锁软件: 支持解锁bootloader,刷写recovery功能

    文章目录 1 软件介绍2 特色功能3 资源站点4 下载地址5 软件截图6 安装教程7 使用教程7 1 解锁BL 1 软件介绍 通过这款华为手机实用工具箱可以对你的华为手机系列进行刷机 解锁等操作 xff0c 网上这种华为刷机解锁工具比较少
  • python subprocess 实时输出_Python标准库初探之subprocess

    一 subprocess简介 人生苦短 xff0c 我用Python 今天给大家带来一个在Python脚本中启动进程的利器 subprocess 人们都说Python是一个胶水语言 xff0c 可以方便地在多平台上调用其他指令 xff0c
  • 进程内存中堆和栈的区别

    1 概述 在整理数据结构时 xff0c 整理过栈 队列和堆 xff0c 但是在学习进程分布的时候又碰到了 栈和堆 xff0c 初学时很容易把这几个概念给弄混 xff0c 今天有空就给整理一下 2 程序在内存中的分布 程序在内存中的分布如下图
  • C++ Mutable

    1 mutable 含义及常规使用 mutable 英文中表示 xff0c 易变的 xff0c 不定的 xff1b 性情不定的 xff0c 而在代码中表示 可变数据成员 由前面整理的 const详解 知道 xff0c 由const修饰的成员
  • 牛吃草问题

    1 概述 最近碰到一个面试题 xff0c 讲的是牛吃草的问题 xff0c 当时时间短 xff0c 脑袋出现了短路 xff0c 没有给出答案 回来特意查了一下答案 xff0c 发现了一篇比较好的文章 xff0c 现在重新抄写一份 xff0c
  • 开始记录学习中的点滴

    随着年龄的增长 xff0c 除了去了很多地方之外 xff0c 感觉个人没有特别明显的成长 xff0c 对于未来充满了更多的迷茫与困惑 对于程序员的我来说更是感觉到了自己的瓶颈 xff0c 知识储备没有增加多少 xff0c 随着时间的流逝 x
  • C++中Struct与Class的区别与比较

    概述 之前只知道在C 43 43 中类和结构体的区别只有默认的防控属性 xff08 访问控制 xff09 不同 xff0c struct是public的 xff0c 而class是private的 但经过上网查资料才发现 xff0c 除了这
  • 函数调用约定的详解

    概述 在工作的过程中 xff0c 我们总是需要调用底层函数或者使用第三方的库 xff0c 在使用的过程中我就发现了有一些函数前面总有一些 stdcall xff0c 之初我只知道那是调用约定 xff0c 但别人问我什么是调用约定 xff0c
  • #pragma的常用方法讲解

    概述 我们在写代码时 xff0c 总会遇到头文件多次包含的情况 xff0c 刚开始时我们使用宏定义进行控制 xff0c 之后发现有 pragma once这样简单的东西 xff0c 当时是很兴奋 xff0c 以为 pragma就这一种用法
  • C++数组的详细解析

    概述 数组在写程序时经常用到 xff0c 但是对于它和指针的关系 xff0c 自己经常搞混 xff0c 所有抽点时间对数组进行整理 1 数组的概念和使用 数组是用来存储相同类型的变量的顺序集合 所有的数组都是由连续的内存位置组成 最低的地址
  • 华为荣耀9升降级系统 | 华为荣耀9变砖后如何救砖 | 华为荣耀9获取BL解锁码以及如何解BL锁 | 华为荣耀9如何通过写ramdisk.img来获取root

    文章目录 1 按2 通过官方华为手机助手升降级以及修复系统和安装驱动3 使用百分之五模式刷高维禁用包355来安装指定的系统版本8 0 0 3554 故意 xff08 或意外 xff09 刷错包把手机变砖5 使用救砖模式刷高维禁用包355来安
  • C++指针详解

    概述 C C 43 43 语言之所以强大 xff0c 以及其自由性 xff0c 很大部分体现在其灵活的指针运用上 因此 xff0c 说指针是C C 43 43 语言的灵魂一点都不为过 有好的一面 xff0c 必然会有坏的一面 xff0c 指
  • C++ lambda表达式及其原理

    概述 C 43 43 11中引入了新的lamdba表达式 xff0c 使用也很简单 xff0c 我最喜欢的是不用给函数取名称 xff0c 每次给函数取名称都感觉自己读书太少 1 lambda表达式 lambda表达式可以理解为一个匿名的内联
  • GIT 修改用户名和密码

    1 概述 如果你使用GIT的SSH 方式连接远端 xff0c 并且设置了一个没有口令的秘钥 xff0c 这样就可以砸不输入用户名和密码的情况下安全地传输数据 然而 xff0c 这对 HTTP 协议来说是不可能的 每一个连接都是需要用户名和密
  • bmi055 标定_Kalibr tutorials

    Kalibr installation tutorial I was confused about installing Kalibr but there is no even one hint in README md I just pu
  • python上位机例程_python 上位机通信实例

    34 moduleinfo 34 34 card count 34 34 count phone 34 1 34 count 34 1 34 search count 34 34 count phone 34 6 34 count 34 6
  • linux post请求_Linux C++网络编程

    img 前言 要想找一份Linux c 43 43 方面的好工作 xff0c 在面试过程中游刃有余 xff0c 那么这篇文章就是为你定制的 因为作为一个校招的学生 xff0c 我在学习和面试过程中的经历总这个体系的文章 xff0c 希望可以
  • 200826-C语言打印文件中的文本内容

    1 Description 在桌面上创建一个txt文件 xff0c 输入一些文本内容 xff0c 我们的任务是把文本内容打印出来 在编程之前 xff0c 关于一些函数的定义我们需要了解下 fopen fopen的函数原型为 xff1a FI
  • matlab设置使用vs2008编译器,64位操作系统下如何将matlab与vs2008的c编译器

    在windows sever 2008 操作系统上分别装了 matlab2009 xff0c vs2008 xff0c 想把 m 文件编译成 exe 文件 xff0c 但matlab找不到c的编译器 如下 xff0c 请教如何解决 gt g
  • 用c语言实现https通信,C/C++实现HTTPS通信

    include 34 afxinet h 34 CInternetSession mysession CHttpConnection myconn CString VoidText CString strSentence strGetSen