crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> QNetworkAccessManager и SSL, Нет соединения с https://
eldar85
  опции профиля:
сообщение 23.11.2010, 22:25
Сообщение #1


программист
***

Группа: Участник
Сообщений: 283
Регистрация: 2.1.2010
Из: Москва
Пользователь №: 1348

Спасибо сказали: 0 раз(а)




Репутация:   0  


Странная вещь, сделал программу клиент для mail.ru по заказу клиента, программа логинется и проверяет есть ли новые письма, кто постучался в гости в друзья в моем мире и позвал в сообщества.
так вот программа у меня логинится нормально, еще на одном компе своем пробывал запускать тоже нормально, а у клиента не логинется... зашел к нему через тиам вьювер и настроил все и все равно ответ от сервера нулевой.
потом попытался просто google.ru и mail.ru загрузить, грузит отлично, потом обратил внимание что логинка на mail.ru идет через https://auth.mail.ru/cgi-bin/auth а тут соединение с сервером идет через ssl.
попробывал еще у нескольких людей запустить программу вышло из 10 попыток у 6 работает у 4х пользователей нет, просто не логинится и никакого ответа сервера не выдает...

    request.setUrl(QUrl(load_url));
    request.setRawHeader("User-Agent",
"Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.8) Gecko/20100722 MRA 5.6 (build 03402)
Firefox/3.6.8 (.NET CLR 3.5.30729) sputnik 2.0.1.41 WebMoney Advisor");
    request.setRawHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
    request.setRawHeader("Accept-Language", "ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3");
    request.setRawHeader("Accept-Charset", "windows-1251,utf-8;q=0.7,*;q=0.7");


    if(referer != "")
        request.setRawHeader( "Referer", referer.toUtf8() );

    if(cookie != "")
        request.setRawHeader( "Cookie", cookie.toUtf8() );

    if(proxy != "" && with_proxy)
    {
        ip_port = proxy.split(":");

        if( ip_port.length() == 2 )
        {
            tmp = ip_port[1];
            port = tmp.toInt();

            if( http_socks5 )
                manager.setProxy(QNetworkProxy(QNetworkProxy::HttpProxy, ip_port[0], port));
            else
                manager.setProxy(QNetworkProxy(QNetworkProxy::Socks5Proxy, ip_port[0], port));
        }
    }

    if(post_data == "")
        reply = manager.get( request );
    else
        reply = manager.post( request, post_data );


    QObject::connect( reply, SIGNAL( finished() ), &loop, SLOT( quit() ) );
    QObject::connect( &timer, SIGNAL( timeout() ), &loop, SLOT( quit() ) );

    QObject::connect( reply, SIGNAL(sslErrors(QList<QSslError>)), reply, SLOT(ignoreSslErrors()));

    timer.start(30000);
    loop.exec();

    cookie_loaded = reply->rawHeader("Set-Cookie");

    location = reply->rawHeader("Location");

    QByteArray buf = reply->readAll();

    headers = reply->rawHeaderList();


вот такая функция для работы с сетью... может библиотек каких не хватает у тех клинтов, или ХЗ... я им вместе с прогой пять обязательных скидывал - QtNetwork4.dll, QtCore4.dll, mingwm10.dll, libgcc_s_dw2-1.dll, QtGui4.dll

Сообщение отредактировал eldar85 - 23.11.2010, 22:34
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ufna
  опции профиля:
сообщение 23.11.2010, 23:03
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 362
Регистрация: 24.5.2008
Из: Курган/СПб
Пользователь №: 182

Спасибо сказали: 29 раз(а)




Репутация:   5  


по-моему для работы с SSL надо OpenSSL вкомпиливать в кутэ
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
eldar85
  опции профиля:
сообщение 23.11.2010, 23:49
Сообщение #3


программист
***

Группа: Участник
Сообщений: 283
Регистрация: 2.1.2010
Из: Москва
Пользователь №: 1348

Спасибо сказали: 0 раз(а)




Репутация:   0  


у меня openSSL установлен на компе, я клиенту тоже устанавливал openSSL на комп и не дало результата... я думаю тоже что в кьюти нужно кампилировать но не знаю как и какие либы... наверное libssl32.dll libssl.dll но как это сделать не знаю...

вот нашел кое что
Из папки c OpenSSL \lib нужно скопировать файлы: libeay32.lib ssleay32.lib

в папку Qt qt\lib

Из папки с OpenSSL \lib\MinGW скопировать все файлы в папку Qt \mingw\lib

Из папки c OPenSSL \include скопировать папку openssl со всем содержимым в папку Qt \qt\include

Запустить "Qt Command Prompt" (C:\WINDOWS\system32\cmd.exe /K C:\Qt\2009.02\bin\qtenv.bat) и вписать в команду configure ключ -openssl-linked

только в CMD не получается запустить C:\WINDOWS\system32\cmd.exe /K F:\Qt\bin\qtenv.bat configure -openssl-linked


F:\Documents and Settings\Admin>F:\Qt\bin\qtenv.bat configure -openssl-linked
Setting up a MinGW/Qt only environment...
-- QTDIR set to F:\Qt\qt
-- PATH set to F:\Qt\qt\bin
-- Adding F:\Qt\bin to PATH
-- Adding F:\WINDOWS\System32 to PATH
-- QMAKESPEC set to win32-g++


вот такое вот получилось, я не понял добавил я ссл или нет... и нужно ли будет потом закидывать какие то библиотеки с ехе ... и про файле что нить дополнительно прописывать???
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
eldar85
  опции профиля:
сообщение 24.11.2010, 0:43
Сообщение #4


программист
***

Группа: Участник
Сообщений: 283
Регистрация: 2.1.2010
Из: Москва
Пользователь №: 1348

Спасибо сказали: 0 раз(а)




Репутация:   0  


Разабрался... у меня в C:\WINDOWS\system32 лежат libeay32.lib и libssl32.lib поэтому и работает норм на моем компе, попробывал удалить эти дви дллки и все. соединение тут же пропало)) закинул к ехешнику и норм, в общем к программе теперь нужно будет подкинуть эти две дллки и все путем работает))
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
eldar85
  опции профиля:
сообщение 24.11.2010, 12:25
Сообщение #5


программист
***

Группа: Участник
Сообщений: 283
Регистрация: 2.1.2010
Из: Москва
Пользователь №: 1348

Спасибо сказали: 0 раз(а)




Репутация:   0  


вопрос не закрыт, соединения у людей так и не появилось...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
eldar85
  опции профиля:
сообщение 24.11.2010, 13:24
Сообщение #6


программист
***

Группа: Участник
Сообщений: 283
Регистрация: 2.1.2010
Из: Москва
Пользователь №: 1348

Спасибо сказали: 0 раз(а)




Репутация:   0  


уже и добавил
QObject::connect( reply, SIGNAL(sslErrors(QList<QSslError>)), reply, SLOT(ignoreSslErrors()));

чтобы на ошибки ссл соединения забивал, все равно в ответе от сервера пусто
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
eldar85
  опции профиля:
сообщение 24.11.2010, 13:56
Сообщение #7


программист
***

Группа: Участник
Сообщений: 283
Регистрация: 2.1.2010
Из: Москва
Пользователь №: 1348

Спасибо сказали: 0 раз(а)




Репутация:   0  


все методы из сети использованы... толи что то не то делаю...

Сообщение отредактировал eldar85 - 24.11.2010, 21:55
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
eldar85
  опции профиля:
сообщение 25.11.2010, 14:51
Сообщение #8


программист
***

Группа: Участник
Сообщений: 283
Регистрация: 2.1.2010
Из: Москва
Пользователь №: 1348

Спасибо сказали: 0 раз(а)




Репутация:   0  


ниужели никто не сталкивался с такой проблемой???
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 25.11.2010, 15:30
Сообщение #9


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Цитата(eldar85 @ 25.11.2010, 14:51) *
ниужели никто не сталкивался с такой проблемой???

ну проблема довольно специфическая.
надо на месте смотреть и отлаживать.
может снифером, не знаю, смотреть.
почитай про предметную область вопроса, посмотри проблемы тобой описанные в баг трекере троллей.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 25.11.2010, 16:37
Сообщение #10


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


снимай снифером логи обмена пакетами. может, банально файрвол зарубает или ещё что. какой-нить брандмауэр или хостер.
ну и, как вариант, настройки почтовика у клиентов: иногда для доступа к почте по POP или IMAP на самом сервере надо галочки проставлять сначала, а так просто тупо не будет коннектиться.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 18.3.2025, 20:54