Название: ignoreSslErrors() не работает Отправлено: Reklats от Февраля 18, 2011, 23:10 Всем привет!
Встала довольно тривиальная задача: авторизоваться Basic авторизацией по ssl. Покурив пример из examples\network\http не стал изобретать велосипед и просто немного изменил этот пример. Да вот только он не работает с нужным мне сайтом. Сделал всё как написано в доках: в слот, который соединён с сигналом sslError() вставляю ignoreSslErrors(). Код
В консоли высвечиваются 2 ошибки сертификата "The host name did not match any of the valid hosts for this certificate" и "The certificate is self-signed, and untrusted". А потом сразу шлётся сигнал finished() и вываливается ошибка "SSL handshake failed". Ни до какой авторизации дело не доходит. Перелопатил весь этот форум, у гугла спрашивал - бестолку. Ничего не помогает. Что я делаю не так? upd: После некоторых манипуляций выяснилось, что таки ошибки игнорируются, как то не так: шлю запрос, вызывается slotSslErrors(), потом вызывается слот авторизации, потом снова slotSslErrors() и так по кругу. Логин и пароль верные. Название: Re: ignoreSslErrors() не работает Отправлено: Reklats от Февраля 20, 2011, 18:41 Думаю, что надо просто запретить проверку сертификата - установить QSslSocket::VerifyNone.
Если пишу так: Код
В консоль вываливается вот это: Код: slotDownloadButton : "Кнопка нажата" Я в панике. В доках написано, что задавать конфиг SSL надо до запроса, а тут такое. Что делать? Название: Re: ignoreSslErrors() не работает Отправлено: Reklats от Марта 08, 2011, 19:06 Как оказалось, ssl не при чём. Не верная Basic авторизация. Нужно было в 1м запросе получить куки, а во 2м получить нужную страницу. При чём сигнал authenticationRequired(QNetworkReply*,QAuthenticator*) ловить не обязательно. Всё можно сделать гораздо компактнее - добавить заголовок Authorization:
Код
|