SSL的作用是实现网站https化,让网站更安全。
这就是为什么我们在用Qt的network模块访问http网站正常,但是访问https网站却会失败,因为需要SSL验证。
那么如何在自测的时候跳过SSL验证呢?
在QNetworkRequest这个类中,有这样一个函数:
void QNetworkRequest::setSslConfiguration(const QSslConfiguration &configuration);
这个函数可以设置SSL的配置,包括OpenSSL以及其它的SSL,都是这样的配置。
然后我又看QSslConfiguration这个类,并且看到了这样的函数:
void QSslConfiguration::setPeerVerifyMode(QSslSocket::PeerVerifyMode mode)
我在仔细研读文档后,发现其中的端倪。原来默认设置是对服务器的安全证书进行验证的。我们本地的网站由于证书有问题,从而无法导入证书,这个时候呢,无法通过验证。默认的验证模式无法通过,从而服务端无法获得到客户端传入的数据,因此我们需要进行这样的操作:
QSslCo