首页 > 其他分享 >wininet https请求——不使用openssl也是可以的

wininet https请求——不使用openssl也是可以的

时间:2022-12-27 16:00:19浏览次数:47  
标签:https hOpen lib NULL openssl netdata include wininet

 

//WinINet HTTPS Get

// https请求:https://github.com/netdata/netdata/blob/master/CMakeLists.txt

#include<iostream>
#include<Windows.h>
#include<WinInet.h>
#pragma comment(lib,"WinInet.lib")
int main()
{
	HINTERNET hOpen = InternetOpen(TEXT("KaikiUpdate"), INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);//打开连接,获得Internet句柄
	if (!hOpen)
		std::cout << "Error InternetOpen.\n";

	HINTERNET hConnect = InternetConnect(hOpen, TEXT("github.com"), INTERNET_DEFAULT_HTTPS_PORT,
		TEXT(""), TEXT(""), INTERNET_SERVICE_HTTP, 0, 0);//连接,获得连接句柄	
	if (!hConnect) {
		std::cout << "Error InternetConnect.\n";
		return -1;
	}
		

	HINTERNET hReq = HttpOpenRequest(hConnect, TEXT("GET"), TEXT("netdata/netdata/blob/master/CMakeLists.txt"),
		HTTP_VERSION, TEXT(""), NULL, INTERNET_FLAG_SECURE, 0);//打开请求,获得请求句柄	
	if (!hReq) {
		std::cout << "Error HttpOpenRequest.\n";
		return -1;
	}
		
	BOOL status = HttpSendRequest(hReq, NULL, 0, NULL, 0);//发送

	if (status == FALSE) {
		std::cout << "Error HttpSendRequest.\n";//断网时在这里出错
		return -1;
	}

	char szBuffer[1024] = "";
	DWORD dwByteRead = 0;
	// FILE* fp = NULL;
	// fopen_s(&fp, "dl.txt", "wb");

	do
	{
		status = InternetReadFile(hReq, szBuffer, ARRAYSIZE(szBuffer), &dwByteRead);
		if (status == FALSE)std::cout << "Error InternetReadFile.\n";
		else std::cout << szBuffer;
		std::cout << szBuffer;
		// fwrite(szBuffer, dwByteRead, 1, fp);
		ZeroMemory(szBuffer, dwByteRead);
	} while (dwByteRead);
	
	//fclose(fp);

	InternetCloseHandle(hReq);
	InternetCloseHandle(hConnect);
	InternetCloseHandle(hOpen);
	return 0;
}

 

标签:https,hOpen,lib,NULL,openssl,netdata,include,wininet
From: https://www.cnblogs.com/bonelee/p/17008257.html

相关文章

  • 关于python环境中安装OpenSSL模块报错-ERROR: Could not find a version that satisfi
    因为需要在代码中importOpenSSL,笔者就准备使用pip3install的方式安装 OpenSSL,结果报如下错误:[qq5201351@localhost~]$pip3installOpenSSLERROR:Couldnotfi......
  • 腾讯云免费申请SSL证书配置https
    证书申请1、进入腾讯云官网,在上方直接搜索SSL,搜索到后点击立即选购;2、点击进去后选择自定义配置,加密标准选择默认的国际标准,证书种类选择域名免费版(DV),勾选同意服务条款......
  • 配置https虚拟主机
    配置https虚拟主机配置httpd.conf,取消以下注释LoadModulessl_modulemodules/mod_ssl.soInclude/etc/httpd24/extra/httpd-ssl.conf[root@liuconf]#vimhttpd.conf......
  • openssl实现私有CA
    openssl实现私有CA创建CA目录[root@liu~]#mkdir/etc/pki/CA[root@liu~]#ls/etc/pki/CAca-trustjavarpm-gpgrsyslogtlsCA生成一对密钥[root@liu~]......
  • 配置https虚拟主机
    配置https步骤生成证书openssl实现私有CA参考配置httpd.conf,取消以下内容的注释  LoadModulessl_modulemodules/mod_ssl.so  Include/etc/httpd24/extra/......
  • openssl实现私有CA
    openssl实现私有CA只在内网使用,无法连接外网CA的配置文件:/etc/pki/tls/openssl.cnf创建CA目录 [root@node2~]#mkdir/etc/pki/CA [root@node2~]#cd/etc/pki/CA......
  • HTTPS性能优化(转)
    分析性能损耗产⽣性能消耗的两个环节:1.第⼀个环节, TLS 协议握⼿过程;2.第⼆个环节,握⼿后的对称加密报⽂传输。对于第⼆环节,现在主流的对称加密算法 AES、ChaCha20 ......
  • https Java SSL Exception protocol_version
      在java代码中,使用HttpClient爬取https页面时,遇到了这个bug:javax.net.ssl.SSLException:Receivedfatalalert:protocol_version     先奉上初始的代码:1/**2......
  • iis设置 https 证书
    iishttps绑定1、进入iis导入服务器证书pfx2、双击pfx证书文件进行默认安装3、进入iis站点绑定证书 问题1:如果导入一直提示密码不正确,其实密码是对的尝试安装openss......
  • nginx 一个端口 多路由配置多项目 https 配置项
    #usernobody;userroot;worker_processes1;worker_rlimit_nofile51200;events{useepoll;worker_connections51200;multi_accepton;}http{i......