#qt #ssl #webkit #qnetworkaccessmanager
#qt #ssl #webkit #qnetworkaccessmanager
Вопрос:
Есть ли какой-либо способ заменить QSslSocket, используемый QNetworkAccessManager, моей собственной реализацией?
Я действительно с нетерпением ждал возможности использовать WebKit!!
Я работаю над присоединением реализации PKCS11 к нашему программному обеспечению на базе Qt.
Пока единственный способ, который я нашел, это использовать QHttp — но в документе сказано, что этот класс использовать не следует..
Пока я нахожу QNetworkAccessManager очень ограниченным. Да, это просто, но это не суть этого фреймворка.
???
Ответ №1:
Вы не можете прямо сейчас заменить QSslSocket внутри реализации HTTP. Единственное, что вы могли бы сделать, это переопределить createRrequest вашего QNAM и полностью переопределить реализацию HTTP.
Что именно нужно сделать, чтобы использовать PKCS11? Вам нужно было бы изменить какой-либо код в src / network /ssl /qsslsocket * и изменить SSLContext? Или уровень HTTP также нуждается в изменении?
Комментарии:
1. Я пришел к тому же выводу. Единственный способ переопределить QNetworkAccessManager / QNetworkReply, тогда внутри QNetworkReply можно использовать QHttp, и он предоставляет setSocket. Я не хочу исправлять Qt, поскольку я опытный пользователь бета-версий, слишком много головной боли для переноса изменений. Для всех, кто столкнется с такой же задачей -прочитайте этот пост: lists.trolltech.com/qt-interest/2008-11/thread00002-0.html Использование PKCS11: мне нужно использовать сертификат со смарт-карты для аутентификации сертификата клиента. Подкласса QSslSocket / QTcpSocket было бы достаточно, если QNetworkAccessManager предоставил бы API для его установки.