Russian Qt Forum
Ноябрь 25, 2024, 22:53 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Http запрос с помощью QTcpSocket  (Прочитано 3999 раз)
cuzace
Гость
« : Ноябрь 25, 2014, 15:06 »

Здравствуйте.
Пытаюсь отправить хттп запрос в чистом виде, т.е. без использования QNetworkAccessManager, судя по всему, для этого нужно использовать QTcpSocket.
Код:
void MainWindow::start()
{
    socket = new QTcpSocket();
    connect(socket,SIGNAL(error(QAbstractSocket::SocketError)),this,SLOT(error(QAbstractSocket::SocketError)));
    connect(socket,SIGNAL(connected()),this,SLOT(connected()));
    connect(socket,SIGNAL(readyRead()),this,SLOT(read()));
    socket->connectToHost("google.com",80);
}

void MainWindow::error(QAbstractSocket::SocketError error)
{
    qDebug()<<error;
}

void MainWindow::connected()
{
    qDebug()<<"Connected";
    socket->write("GET / HTTP/1.0\r\n");

}

void MainWindow::read()
{
    qDebug()<<"Read";
    qDebug()<<socket->readAll();
}
Connected срабатывает, но после этого ничего не происходит, хотя с локальным QTcpServer'ом все работает как надо.
Тут что-то неправильно или это проблемы с доступом к интернету?
Записан
alex312
Хакер
*****
Offline Offline

Сообщений: 606



Просмотр профиля
« Ответ #1 : Ноябрь 25, 2014, 16:32 »

Тут что-то неправильно или это проблемы с доступом к интернету?
Сейчас сайты умные пошли, на простой GET не отвечают, а гугл так вообще забанить может.
Записан
cuzace
Гость
« Ответ #2 : Ноябрь 25, 2014, 20:13 »

И как с ними работать? Prog.org.ru тоже не отвечает, хотя соединение устанавливается и write вроде как срабатывает без ошибок
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #3 : Ноябрь 25, 2014, 20:30 »

И как с ними работать? Prog.org.ru тоже не отвечает, хотя соединение устанавливается и write вроде как срабатывает без ошибок

Думаю передавать HTTP заголовки, которые передаёт любой браузер.
Записан
cuzace
Гость
« Ответ #4 : Ноябрь 25, 2014, 21:40 »

Нужно было отправить \r\n еще раз, сервер судя по всему ждал пустую строку, поэтому не отвечал
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.152 секунд. Запросов: 23.