当前位置: 首页 > news >正文

做拼货商城网站自己制作网页怎么制作的

做拼货商城网站,自己制作网页怎么制作的,wordpress 无法登陆后台,4399网页游戏大全Wininet库忽略Https证书 相信很多朋友使用C WINAPI开发的时候网络模块的时候遇到Https忽悠证书无效的情况下, 仍然希望获取结果下列代码便是忽略异常的Https CA证书,下面对原理进行简单的讲解首先, 需要设置Https忽略需要用到如下结果函数与参数Interne…
Wininet库忽略Https证书
相信很多朋友使用C++ WINAPI开发的时候网络模块的时候遇到Https忽悠证书无效的情况下,
仍然希望获取结果下列代码便是忽略异常的Https CA证书,下面对原理进行简单的讲解首先,
需要设置Https忽略需要用到如下结果函数与参数InternetQueryOptionA/InternetSetOptionA
参数需要SECURITY_FLAG_IGNORE_UNKNOWN_CA,下面建议先阅读下代码可以发现忽略Https证书
是发生在HttpSendRequestA之后设置这是因为InternetConnect主要负责主要负责建立与服务器
的连接,而涉及到CA(Certificate Authority)的验证通常是在建立连接后的HTTP请求阶段进行的,
CA的验证是在SSL/TLS握手过程中完成的,而握手过程通常是在 HttpSendRequestA被调用时发生。
因此,在建立连接时,我们还没有进入HTTP请求的阶段,所以无法在 InternetConnect 之前
处理CA验证的问题,因此下列代码是进行这样忽略的首先HttpSendRequestA返回ERROR_INTERNET_INVALID_CA
出现CA证书异常这个时候需要忽略证书无效,InternetQueryOptionA获取当前的安全选项然后
追加上SECURITY_FLAG_IGNORE_UNKNOWN_CA忽略证书无效CA将设置后的值通过InternetSetOptionA 
函数应用再次发起HttpSendRequestA即可忽略CA证书进行下一步操作。
#include <Windows.h>
#include <Wininet.h>
#include <stdio.h>
#pragma comment(lib, "wininet.lib")#define TRANSFER_SIZE 1024// 定义一个函数来执行HTTP请求
bool PerformHttpRequest() {// 设置用户代理字符串LPCSTR lpszAgent = "";// 初始化WinINet会话HINTERNET hInternet = InternetOpenA(lpszAgent, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);if (!hInternet) {return false; // 如果InternetOpen失败,返回false}// 服务器详情LPCSTR lpszServerName = "192.168.99.111"; // 设置服务器IP地址INTERNET_PORT nServerPort = INTERNET_DEFAULT_HTTPS_PORT; // HTTPS端口443LPCSTR lpszUserName = NULL; // 无登录用户名LPCSTR lpszPassword = NULL; // 无登录密码DWORD dwConnectFlags = 0;DWORD dwConnectContext = 0;// 连接到服务器HINTERNET hConnect = InternetConnectA(hInternet,lpszServerName, nServerPort,lpszUserName, lpszPassword,INTERNET_SERVICE_HTTP,dwConnectFlags, dwConnectContext);if (!hConnect) {InternetCloseHandle(hInternet);return false; // 如果连接失败,返回false}// 请求详情LPCSTR lpszVerb = "GET";LPCSTR lpszObjectName = "/Login";LPCSTR lpszVersion = NULL;    // 默认.LPCSTR lpszReferrer = NULL;   // 没有引用页LPCSTR* lplpszAcceptTypes = NULL; // Accpet所有类型.DWORD dwOpenRequestFlags = INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP |INTERNET_FLAG_KEEP_CONNECTION |INTERNET_FLAG_NO_AUTH |INTERNET_FLAG_NO_COOKIES |INTERNET_FLAG_NO_UI |// 设置启用HTTPSINTERNET_FLAG_SECURE |INTERNET_FLAG_IGNORE_CERT_CN_INVALID |INTERNET_FLAG_RELOAD;DWORD dwOpenRequestContext = 0;// 初始化请求HINTERNET hRequest = HttpOpenRequestA(hConnect, lpszVerb, lpszObjectName, lpszVersion,lpszReferrer, lplpszAcceptTypes,dwOpenRequestFlags, dwOpenRequestContext);if (!hRequest) {InternetCloseHandle(hConnect);InternetCloseHandle(hInternet);return false; // 如果初始化请求失败,返回false}// 发送请求BOOL bResult = HttpSendRequestA(hRequest, NULL, 0, NULL, 0);if (!bResult && GetLastError() == ERROR_INTERNET_INVALID_CA) {// 处理HTTPS证书无效的情况DWORD dwFlags;DWORD dwBuffLen = sizeof(dwFlags);InternetQueryOptionA(hRequest, INTERNET_OPTION_SECURITY_FLAGS, (LPVOID)&dwFlags, &dwBuffLen);dwFlags |= SECURITY_FLAG_IGNORE_UNKNOWN_CA;InternetSetOptionA(hRequest, INTERNET_OPTION_SECURITY_FLAGS, &dwFlags, sizeof(dwFlags));bResult = HttpSendRequestA(hRequest, NULL, 0, NULL, 0);}if (!bResult) {InternetCloseHandle(hRequest);InternetCloseHandle(hConnect);InternetCloseHandle(hInternet);return false; // 如果发送请求失败,返回false}// 获取HTTP响应头信息char szBuff[TRANSFER_SIZE];DWORD dwReadSize = TRANSFER_SIZE;bResult = HttpQueryInfoA(hRequest, HTTP_QUERY_RAW_HEADERS_CRLF, szBuff, &dwReadSize, NULL);if (!bResult) {InternetCloseHandle(hRequest);InternetCloseHandle(hConnect);InternetCloseHandle(hInternet);return false; // 如果获取响应头信息失败,返回false}szBuff[dwReadSize] = '\0';printf("%s\n", szBuff);// HTTP响应的正文DWORD dwBytesAvailable;bResult = InternetQueryDataAvailable(hRequest, &dwBytesAvailable, 0, 0);if (!bResult) {InternetCloseHandle(hRequest);InternetCloseHandle(hConnect);InternetCloseHandle(hInternet);return false; // 如果查询可用数据失败,返回false}if (dwBytesAvailable > TRANSFER_SIZE) {printf("数据太长 %d /b", GetLastError(), dwBytesAvailable);InternetCloseHandle(hRequest);InternetCloseHandle(hConnect);InternetCloseHandle(hInternet);return false; // 如果可用数据太长,返回false}DWORD dwBytesRead;bResult = InternetReadFile(hRequest, szBuff, dwBytesAvailable, &dwBytesRead);if (!bResult) {InternetCloseHandle(hRequest);InternetCloseHandle(hConnect);InternetCloseHandle(hInternet);return false; // 如果读取数据失败,返回false}szBuff[dwBytesRead] = '\0';printf("%s\n", szBuff);InternetCloseHandle(hRequest);InternetCloseHandle(hConnect);InternetCloseHandle(hInternet);return true; // 成功执行HTTP请求,返回true
}int main() {if (PerformHttpRequest()) {return 0;}else {return 1;}
}
http://www.15wanjia.com/news/173611.html

相关文章:

  • c语言 做网站打开小程序
  • 广州兼职网网站建设如何自己做游戏网站
  • 如何搭建一个完整的网站网站建设中采用的技术方案
  • 做漫画在线观看网站深圳新闻最新消息今天
  • 2017商会网站建设方案公司网站工程案例怎么做
  • 网站建设费计入什么科目比较好河南省住房和城乡建设厅网站首页
  • 浅析我国门户网站建设不足做网站 蓝洋
  • 免费大气网站模板手机网站自适应屏幕
  • 数据库和网站传奇网游游戏排行榜
  • 购物网站黑白点击器 百度网盘
  • 顺德网络营销网站wordpress 标题相同
  • 宽屏网站源码鹤壁公司做网站
  • 百度地图添加到网站深圳网站建设服务商哪些好?
  • 免费做漫画网站深圳网络推广公司有哪些
  • 创建网站时可使用的数据库有全影网的网站哪儿做d
  • 一万元做网站竹子建站seo设置怎么做
  • 西安网站维保公司天津做网站开发的
  • 雪域什么网站是做电影的网店推广总结
  • 网站建设实践收获天河区进一步
  • 怎么seo网站关键词优化潍坊网站建设尚荣
  • 楚雄州建设局网站如何修改WordPress账号
  • 桂林北站附近住宿东莞封了几个镇
  • 网站设计的标准达内学费价格表
  • 如何进入微网站静态网站怎么做
  • 怎么做二手房网站如何把自己电脑做网站服务器
  • 西宁圆井模板我自己做的网站网站建设需要大约多少钱
  • 上海专业做网站公司有哪些域名网查询
  • dart语言做的网站网站开发与建设的原则
  • 流量套餐网站网站建设与经营
  • 西安企业建站费用可信赖的响应式网站