PyQt + QtWebkit за прокси - PullRequest
       8

PyQt + QtWebkit за прокси

5 голосов
/ 10 августа 2010

Я пишу приложение PyQt (привязки Python для всемогущей библиотеки Qt), и небольшая часть моего приложения нуждается в веб-браузере (подсказка, OAuth).Поэтому я начал использовать QtWebkit, что, кстати, просто фантастика.Единственное препятствие - я хотел бы разрешить пользователям моего прокси-сервера использовать мое приложение.

Я прочитал о классе QNetworkProxy в пакете QtNetwork и решил, что это должно сработать.Единственная проблема заключается в том, что когда я создаю и применяю прокси, он отлично работает по HTTP, но когда я передаю ему URL-адрес HTTPS (SSL), он выдает следующие ошибки:

QSslSocket: cannot call unresolved function SSLv3_client_method
QSslSocket: cannot call unresolved function SSL_CTX_new
QSslSocket: cannot call unresolved function SSL_library_init
QSslSocket: cannot call unresolved function ERR_get_error
QSslSocket: cannot call unresolved function ERR_error_string

Примечание: когдаЯ бегу ...

QtNetwork.QSslSocket.supportsSsl()

.. возвращает false.Итак, это доказательство моей проблемы.

Вот мой основной код (это прямо перед моим созданием моей QApplication):

proxy = QtNetwork.QNetworkProxy()
proxy.setType(QtNetwork.QNetworkProxy.Socks5Proxy)
proxy.setHostName('localhost');
proxy.setPort(1337)
QtNetwork.QNetworkProxy.setApplicationProxy(proxy);

Я получил код от здесь , нопример написан на C ++, а не на Python, поэтому я не совсем уверен, правильно ли я его перевел.Это может быть проблемой.

РЕДАКТИРОВАТЬ: Я пробовал через SOCKS5 и HTTP-прокси, и они оба выдают одну и ту же ошибку.

1 Ответ

5 голосов
/ 10 августа 2010

Я работал на Windows XP (32-разрядная версия) с Python 2.6 и PyQt 4.7.4.Причина, по которой ...

QtNetwork.QSslSocket.supportsSsl()

возвращала false , была в том, что я не установил двоичные файлы OpenSSL в мою систему.

Чтобы решитьпроблема, которую я пошел здесь , чтобы загрузить двоичные файлы.Прежде чем они правильно установились, мне также пришлось получить распространяемые файлы *1013* от Microsoft.

Теперь все отлично работает!

...