Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Прокси в qt


Автор: setjmp 1.10.2010, 08:14
Стало необходимо использовать прокси сервер в моем приложении.
Программа получает html страницы из интернета, и как я понимаю нужно брать http прокси.
Нашел вот такое:        
 
Код

        QNetworkProxy proxy;
        proxy.setType(QNetworkProxy::HttpProxy);
        proxy.setHostName(ui->lineEdit_4->text());
        proxy.setPort(ui->spinBox->value());
        proxy.setUser(ui->lineEdit_7->text());
        proxy.setPassword(ui->lineEdit_8->text());

Но непонятно что делать с полем юзер и пароль. Так обычнр прокси сервера распростроняются вида: 221.130.162.248:80
И что вводить в логин и пароль ума не приложу. С этим кодом все компилируется и работает, но прокси, судя по сниферу, нет.
Объясните как заюзать прокси в моей программе, а то ума не приложу.

Автор: RedDigger 1.10.2010, 16:35
Цитата(setjmp @ 1.10.2010,  08:14)
Стало необходимо использовать прокси сервер в моем приложении.
Программа получает html страницы из интернета, и как я понимаю нужно брать http прокси.
Нашел вот такое:        
        QNetworkProxy proxy;
        proxy.setType(QNetworkProxy::HttpProxy);
        proxy.setHostName(ui->lineEdit_4->text());
        proxy.setPort(ui->spinBox->value());
        proxy.setUser(ui->lineEdit_7->text());
        proxy.setPassword(ui->lineEdit_8->text());
Но непонятно что делать с полем юзер и пароль. Так обычнр прокси сервера распростроняются вида: 221.130.162.248:80
И что вводить в логин и пароль ума не приложу. С этим кодом все компилируется и работает, но прокси, судя по сниферу, нет.
Объясните как заюзать прокси в моей программе, а то ума не приложу.

Для того чтобы твоя программа использовала прокси тебе надо установить объект QNetworkProxy в приложение. Сделать подобное ты можешь двумя способами - 
Глобально для всего приложения - 
Код

QNetworkProxy::setApplicationProxy(proxy);

или указать соединению напрямую
Код

serverSocket->setProxy(proxy);

После этого через это соединение все будет идти через прокси.

С именами и паролями могу посоветовать использовать либо пустое поле(просто не заполнять данные в QNetworkProxy) либо использовать anonymous пользователя.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)