最近做一个天气预报的小程序,需要对网站API接口的Json数据进行解析,处理过程中发现以“HTTP//”开头的网络请求没有问题,而以“HTTPS//”开头的网络请求经运行产生以下错误:
qt.network.ssl: QSslSocket: cannot call unresolved function SSLv23_client_method
qt.network.ssl: QSslSocket: cannot call unresolved function SSL_CTX_new
qt.network.ssl: QSslSocket: cannot call unresolved function SSL_library_init
qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error
qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error
网上搜索了半天,最终得到解决,现把主要问题记录下来,供大家参考:
- HTTP与HTTPS区别
在使用Qt发送HTTP请求中一般使用的链接都是http://前缀,而有的服务器支持 https://前缀的链接。
前者(HTTP)以明文方式发送内容,不提供任何方式的数据加密,因此在QT网络开发中可以直接发送请求。但是如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。
而HTTPS在HTTP的基础上加入了SSL协议,