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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблема с ответом от сервера  (Прочитано 317 раз)
Zusykss
Новичок

Offline Offline

Сообщений: 27


Просмотр профиля
« : Март 05, 2017, 14:35 »

Посылаю запрос
Код:
req.setUrl(FIR_REQ_ADD);
    req.setRawHeader("Host", "baza.drom.ru");
    req.setRawHeader("Connection", "keep-alive");
    req.setRawHeader("Upgrade-Insecure-Requests", "1");
    req.setRawHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36");
    req.setRawHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
В первом варианте, все ок приходит ответ(только в нем куча ���������� ���������� �� таких символов) и нет
\u0434\u043d\u0443 \u0448\u0442\u0443\u043a\u0443 \u0411\u0423 185\/55\/16 - вот такого

Второй вариант
Код:
req.setUrl(FIR_REQ_ADD);
    req.setRawHeader("Host", "baza.drom.ru");
    req.setRawHeader("Connection", "keep-alive");
    req.setRawHeader("Upgrade-Insecure-Requests", "1");
    req.setRawHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36");
    req.setRawHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
    req.setRawHeader("Referer", "http://baza.drom.ru/adding");
    req.setRawHeader("Accept-Encoding", "gzip, deflate, sdch");
    req.setRawHeader("Accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4");
Приходит просто одна строчка = �

В чем причина, не могу понять. Пример сырого запроса беру из снифера, в снифере все работает хорошо, а программно выдает такую штуку

Код:
QString strBuf = QString::fromUtf8(m_reply->readAll());
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3850



Просмотр профиля WWW
« Ответ #1 : Март 05, 2017, 18:06 »

а ты байты смотрел какие приходят в ответ? может там кодировка не UTF-8.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Zusykss
Новичок

Offline Offline

Сообщений: 27


Просмотр профиля
« Ответ #2 : Март 05, 2017, 18:43 »

Смотрел.  Ошибка была в gzip, наверно нет такого функционала в QNetworkAccessManager...
Удалил эту строчку, ответ увеличился в 4 раза, зато получаю то что нужно....
req.setRawHeader("Accept-Encoding", "gzip, deflate, sdch");
оставил req.setRawHeader("Host", "baza.drom.ru");


Проблема решена!
Записан
RusTech1
Новичок

Offline Offline

Сообщений: 3


Просмотр профиля
« Ответ #3 : Март 21, 2017, 16:48 »

Можете не отказываться от сжатия, тогда нужно проверять заголовок ответа на "Content-Encoding: gzip", и разжимать, например как тут: http://stackoverflow.com/questions/2690328/qt-quncompress-gzip-data
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

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