HTTPS WinHttpSendRequest的时候报错

我也遇到同样的问题了,是在WinHttpSendRequest的时候报错(12175)
试了一下发现需要在hRequest = WinHttpOpenRequest(...)之后在hRequest中设置几个标志位:
C/C++ code
?
1
2
3
4
5
6
7
8
9
10
11
     DWORD  dwFlags;
     DWORD  dwBuffLen =  sizeof (dwFlags);           
     WinHttpQueryOption (hRequest, WINHTTP_OPTION_SECURITY_FLAGS,
         ( LPVOID )&dwFlags, &dwBuffLen);
     dwFlags |= SECURITY_FLAG_IGNORE_UNKNOWN_CA;
     dwFlags |= SECURITY_FLAG_IGNORE_CERT_DATE_INVALID;
     dwFlags |= SECURITY_FLAG_IGNORE_CERT_CN_INVALID;
//    dwFlags |= SECURITY_FLAG_IGNORE_CERT_WRONG_USAGE;
 
     WinHttpSetOption (hRequest, WINHTTP_OPTION_SECURITY_FLAGS,
         &dwFlags,  sizeof  (dwFlags) );

之后再调用WinHttpSendRequest就没问题了。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: winhttpsendrequestWindows操作系统中的一个API函数,用于向指定的服务器发送HTTP请求。它可以通过指定请求方法、请求头、请求体等参数来发送HTTP请求,并返回服务器响应的数据。该函数通常用于开发网络应用程序,如浏览器、爬虫等。 ### 回答2: WinHttpSendRequestWindows操作系统提供的一组API函数之一,用于发送HTTP请求至服务器。它是基于WinHTTPWindows HTTP Services)的一部分,能够在Windows应用程序中构建和发送HTTP请求。WinHTTPSendlRequest函数的格式如下: BOOL WinHttpSendRequest(   HINTERNET hRequest,   LPCTSTR pwszHeaders,   DWORD dwHeadersLength,   LPVOID lpOptional,   DWORD dwOptionalLength,   DWORD dwTotalLength,   DWORD_PTR dwContext ); WinHttpSendRequest函数返回一个布尔值,表示请求是否成功发送。其中,hRequest参数表示当前HTTP请求的句柄,pwszHeaders参数包含任何HTTP请求头的字符串,dwHeadersLength表示请求头字符串的长度,lpOptional参数包含POST请求的实体数据,dwOptionalLength表示实体数据的长度,dwTotalLength表示请求的总长度。 WinHttpsSendRequest函数具有以下特点: 1、构建和发送HTTP请求:WinHttpsSendRequest函数可用于构建和发送任何类型的HTTP请求,包括GET请求、POST请求、PUT请求等。 2、可包含请求头和实体数据:WinHttpsSendRequest函数可以将任何请求头和实体数据添加到HTTP请求中,方便构建定制的HTTP请求。 3、可自定义HTTP请求:WinHttpsSendRequest函数支持自定义HTTP请求的各个部分,可以实现更为灵活的请求操作。 4、异常错误处理:WinHttpsSendRequest函数可以捕获发送HTTP请求时发生的异常错误,并进行相应的处理。 5、与HTTP协议版本无关:WinHttpsSendRequest函数可以与任何版本的HTTP协议兼容,可实现跨平台、跨版本的HTTP请求。 总之,WinHttpsSendRequest函数为开发人员提供了一种便捷、灵活、可定制的HTTP请求发送方式,为Windows应用程序的网络功能提供了重要的支持。 ### 回答3: WinHttpSendRequest是一个Windows API函数,用于发送HTTP/HTTPS请求。它是WinHTTP库的一部分。WinHttp库是一个用于发送Http请求并接收它的响应的库。WinHTTP库具有一组API函数,可以在Windows应用程序中使用,以便该应用程序可以与Web服务器进行通信。WinHttpSendRequest函数可以使用HTTP GET、PUT、POST、HEAD、DELETE、OPTIONS和TRACE方法发送HTTP/HTTPS请求。它有多种重载,可以使用不同的设置、标志等来发送请求。 该函数具有以下参数: 1. hRequest:已打开的Http/Https请求句柄。 2. pwszHeaders:要发送到服务器的可选标题的空分隔列表。 3. dwHeadersLength:可选标题的长度。 4. lpOptional:指向可选请求主体的缓冲区指针。 5. dwOptionalLength:可选请求主体的长度。 6. dwTotalLength:要发送到服务器的整个实体的大小。 7. dwContext:应用程序使用的上下文值。 WinHttpSendRequest函数执行以下操作: 1. 发送HTTP请求。 2. 包括请 Hope, User-Agent, Expect,转换信息等有关信息头。 3. 包括可选标题和可选请求正文。 4. 接收响应。 5. 返回操作结果和错误代码。 WinHttpSendRequest函数是WinHTTP库中的一个非常重要的函数。它可以使用多种方法发送Http/Https请求,并最终向应用程序返回响应结果。使用它,我们可以轻松地与Web服务器进行通信,并发送和接收数据。在实际的客户端-服务器通信中,它通常与函数WinHttpOpen, WinHttpConnect, WinHttpOpenRequest, WinHttpReceiveResponse一起使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值