У меня есть приложение qt quick, которое работает без ошибок на Windows
и Android
. Но когда я использую QNetworkAccessManager
, чтобы сделать запрос GET, он не имеет ошибок на windows, но имеет ошибку ниже Android
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve OPENSSL_init_ssl
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve OPENSSL_init_crypto
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve ASN1_STRING_get0_data
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve EVP_CIPHER_CTX_reset
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve EVP_PKEY_base_id
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve RSA_bits
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve OPENSSL_sk_new_null
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve OPENSSL_sk_push
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve OPENSSL_sk_free
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve OPENSSL_sk_num
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve OPENSSL_sk_pop_free
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve OPENSSL_sk_value
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve DH_get0_pqg
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve SSL_CTX_set_ciphersuites
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve SSL_set_psk_use_session_callback
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve SSL_get_client_random
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve SSL_SESSION_get_master_key
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve TLS_client_method
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve TLS_server_method
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve X509_STORE_CTX_get0_chain
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve X509_getm_notBefore
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve X509_getm_notAfter
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve X509_get_version
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve X509_STORE_set_ex_data
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve X509_STORE_get_ex_data
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve CRYPTO_free
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve OpenSSL_version_num
W ShakhehNabat: qt.network.ssl: QSslSocket: cannot resolve OpenSSL_version
W ShakhehNabat: qt.network.ssl: Incompatible version of OpenSSL
Я запускаю приведенный ниже код и
qWarning()<<"QSslSocket build version =>"<<QSslSocket::sslLibraryBuildVersionString();
qWarning()<<"QSslSocket version =>"<<QSslSocket::sslLibraryVersionString();
qWarning()<<"QSslSocket supportsSsl =>"<<QSslSocket::supportsSsl();
а вот вывод на Windows
QSslSocket build version => "OpenSSL 1.1.1b 26 Feb 2019"
QSslSocket version => "OpenSSL 1.1.1c 28 May 2019"
QSslSocket supportsSsl => true
и вот вывод на Android
W ShakhehNabat: QSslSocket version => ""
W ShakhehNabat: QSslSocket supportsSsl => false
W ShakhehNabat: QSslSocket build version => "OpenSSL 1.1.1b 26 Feb 2019"
Я установил Qt 5.12.5 MSVC2017 64bit и Qt 5.12.5 для Android ARMv7, но у меня всего две папки Win_x64 и Win_x86 в пути (C:\Qt\Tools\OpenSSL
)
Редактировать
Когда я сделаю запрос, я получу эту ошибку
qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed
Нужно ли выполнить некоторую инициализацию для сокета ssl? добавить в приложение файл pem ?