我正在使用(val & ~(0x7 << 10)) | (x << 10)
类连接到IoT设备上的Web服务器。我现在需要支持设备的HTTPS,但是它的HTTP还是HTTPS是设备配置文件中的可配置参数,在运行时可能会更改。
我可以使用POCO::Net::HTTPClientSession
类在HTTPS上很好地连接,并且显然可以使用HTTPSClientSession
类在HTTPS上进行连接。但是我宁可不要对这两个协议使用两个对象。看来我应该能够同时使用HTTPClientSession
对象,因为类HTTPSClientSession
是HTTPSClientSession
的子类。
当我尝试使用HTTPClientSession
对象与侦听端口80的普通HTTP服务器进行通信时,HTTPSClientSession
方法将引发异常HTTPClientSession::sendRequest
,并显示以下消息:
Poco::Net::NetException
尝试将140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
对象用于HTTP是否合适?如果是这样,我该怎么办?
答案 0 :(得分:1)
我认为您不能使用HTTPSClientSession
进行HTTP通信。但是您可以利用以下事实:HTTPSClientSession
是HTTPClientSession
的子类:
std::shared_ptr<HTTPClientSession> session;
if(https) {
session.reset(new HTTPSClientSession());
}
else {
session.reset(new HTTPClientSession());
}