如何在Poco中将有效的HTTP代码转换为HTTPS

问题描述 投票:0回答:1

我有使用HTTP请求测试(并批准)的代码。发布计划于明天进行……但是,我们的客户针对(第三方)发布服务器的首次测试表明,它需要HTTPS。至少从表面上看,我们代码中需要更改的(唯一的)一部分是:

HTTPClientSession session( myUri.GetHost(), myUri.GetPort() );

并且所需的更改似乎是:

HTTPSClientSession session( myUri.GetHost(), myUri.GetPort(), context );

建立该context的简单直接方法是什么?我最接近的猜测是跟随this question的开头,但是...

我非常不了解支持HTTPS的SSL层-我需要获得证书吗? This question似乎建议像我这样的客户端连接通常不需要证书(访问服务器需要登录)...但是如果是这样的话,您该怎么办?我什至可以使用HTTPSClientSession吗?

c++ https poco-libraries
1个回答
0
投票

首先,您需要通过安装OpenSSL向Poco添加一层SSL功能。构建OpenSSL和相应的Poco模块(注意为您的部署生成正确的32位或64位版本)。在Windows上,这会将libssl.dlllibcrypto.dllPocoNetSSL.dllPocoCrypto.dll添加到您正在使用的DLL中。

关于代码,this question有两个答案,都给出了如何使用HTTPSClientSession的信息性示例。第一个答案仅将一行代码添加到您已有的代码中,但是它使用VERIFY_NONE,因此绕过了证书验证。第二个答案使用VERIFY_STRICT,并转到另一个极端。是否选择,还是在两者之间选择,取决于您的应用程序。在我的应用程序中,HTTPS根本没有任何好处,第一个(简单)的答案立即可用。第二个答案不能立即生效,因此我无法对其进行进一步评论。

© www.soinside.com 2019 - 2024. All rights reserved.