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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QNetworkAccessManager не могу получить данные от сервера.  (Прочитано 4365 раз)
Dimajp
Гость
« : Февраль 11, 2010, 19:22 »

Создаю обьект запроса и инициализирую его

QNetworkRequest request;
request.setUrl(QUrl("http://iphonett.staging.acceptic.com/api/groups?offset=0&limit=1"));

далее этот запрос даю менеджеру работы с сетью и соединяю ссигнал со слотом

 manager = new QNetworkAccessManager(this);
     connect(manager, SIGNAL(finished(QNetworkReply*)),
         this, SLOT(replyFinished(QNetworkReply*)));

отправляю запрос:

   manager->get(request);

Когда приходит сигнал с ответом то в слоте пытаюсь вынуть тело ответа(в моем случае это обьетк типа JSON), и хотябы вывести в текстовое поле(m_ptxtInfo) чтобы увидеть что я там получил.Ответ в обьекте reply.

m_ptxtInfo->append(reply->readAll().constData());



В результате получаю надпись

Moved Permanently
The document has moved here.


При этом когда смотрю хедеры то они выводятся без проблем!!!

Смотрю их вот так

   QList<QByteArray> result;
    result=reply->rawHeaderList();

    foreach (QByteArray byteArray, result) {
    m_ptxtInfo->append(byteArray.constData());
    m_ptxtInfo->append(reply->rawHeader(byteArray).constData());

получаю следующий текст


Date
Thu, 11 Feb 2010 16:17:44 GMT
Server
Apache/2.2.14 (FreeBSD) mod_ssl/2.2.14 OpenSSL/0.9.7e-p1 DAV/2 PHP/5.2.11 with Suhosin-Patch mod_python/3.3.1 Python/2.5.4 SVN/1.6.6
Location
http://iphonett.staging.acceptic.com/api/groups/?offset=0&limit=1
Content-Length
277
Keep-Alive
timeout=5, max=100
Connection
Keep-Alive
Content-Type
text/html; charset=iso-8859-1


Что я не так делаю чтобы вынуть данные из запроса? Когда сам запрос выполянить в браузере то он выдает нужный мне обьект!!!
Записан
Dimajp
Гость
« Ответ #1 : Февраль 11, 2010, 20:21 »

Все норм!!!

Нашел ошибку!!

Запрос был неправильно написан
Я писал http://iphonett.staging.acceptic.com/api/groups?offset=0&limit=1
И при это браузер всерано его распознавал!!!

а надо было http://iphonett.staging.acceptic.com/api/groups/?offset=0&limit=1

после groups должна были быть /.
Записан
SABROG
Гость
« Ответ #2 : Февраль 12, 2010, 23:30 »

Как-то это всё странно. Это такая заморочка сервера или QNetworkAccessManager'a? При использовании QNAM я подобного не замечал, а запросы с параметрами всегда лепил через QUrl::setQueryItems().
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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