POCO C ++库:使用HTTPS或HTTP连接到服务器

时间:2019-06-24 16:39:43

标签: poco-libraries

我正在使用(val & ~(0x7 << 10)) | (x << 10) 类连接到IoT设备上的Web服务器。我现在需要支持设备的HTTPS,但是它的HTTP还是HTTPS是设备配置文件中的可配置参数,在运行时可能会更改。

我可以使用POCO::Net::HTTPClientSession类在HTTPS上很好地连接,并且显然可以使用HTTPSClientSession类在HTTPS上进行连接。但是我宁可不要对这两个协议使用两个对象。看来我应该能够同时使用HTTPClientSession对象,因为类HTTPSClientSessionHTTPSClientSession的子类。

当我尝试使用HTTPClientSession对象与侦听端口80的普通HTTP服务器进行通信时,HTTPSClientSession方法将引发异常HTTPClientSession::sendRequest,并显示以下消息:

Poco::Net::NetException

尝试将140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol 对象用于HTTP是否合适?如果是这样,我该怎么办?

1 个答案:

答案 0 :(得分:1)

我认为您不能使用HTTPSClientSession进行HTTP通信。但是您可以利用以下事实:HTTPSClientSessionHTTPClientSession的子类:

std::shared_ptr<HTTPClientSession> session;
if(https) {
  session.reset(new HTTPSClientSession());
}
else {
  session.reset(new HTTPClientSession());
}