crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Yandex не отвечает
vbi
  опции профиля:
сообщение 17.8.2011, 11:32
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 5
Регистрация: 17.8.2011
Пользователь №: 2813

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




Репутация:   0  


Написал програмку, которая посылает GET запрос на "www.yandex.ru", который по идее должен возвратить содержание страницы, но вместо этого возвращает пустую строку.
Если послать get запрос на "yandex.ru", то яндекс возвращает страницу "302 Moved Permanently" и перенаправляет на "www.yandex.ru", а тот в свою очередь возвращает пустую строку.
Как с ним бороться, может какие-то уникальные заголовки передать?

Код программы:
.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QtNetwork/QNetworkAccessManager>
#include <QUrl>
#include <QtNetwork/QNetworkRequest>
#include <QtNetwork/QNetworkReply>
#include <QDebug>

namespace Ui {
    class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;

private slots:
    void on_pushButton_clicked();
    void searshFinished(QNetworkReply*);
};

#endif // MAINWINDOW_H


.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
    QNetworkRequest request;
    request.setUrl(QUrl("http://www.yandex.ru/"));
    request.setRawHeader("Host", "yandex.ru");
    request.setRawHeader("User-Agent", "Mozilla/5.0 (X11; U; Linux x86_64; ru; rv:1.9.0.10) Gecko/2009042809 GranParadiso/3.0.10");
    //request.setRawHeader("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)");
    //request.setRawHeader("User-Agent", "Opera/9.80 (Windows NT 6.1; U; en) Presto/2.9.168 Version/11.50");
    //request.setRawHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
    //request.setRawHeader("Accept-Language", "en-us,en;q=0.5");
    //request.setRawHeader("Accept-Encoding", "gzip,deflate");
    //request.setRawHeader("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7");
    request.setRawHeader("Keep-Alive", "115");
    request.setRawHeader("Connection", "keep-alive");
    //request.setRawHeader("Referer", urlBytes);
    //request.setRawHeader("Cookie", "");
    //request.setRawHeader("Content-Type", "application/x-www-form-urlencoded");
    //request.setRawHeader("Content-Length", "557");


    QNetworkAccessManager* manager = new QNetworkAccessManager(this);
    connect(manager, SIGNAL(finished(QNetworkReply*)),this, SLOT(searshFinished(QNetworkReply*)));
    manager->get(request);
}

void MainWindow::searshFinished(QNetworkReply* reply)
{
    QByteArray ansver = reply->read(reply->bytesAvailable());
    qWarning() << ansver;
}


Скачать прогу можно отсюда
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
PAFOS
  опции профиля:
сообщение 18.8.2011, 8:37
Сообщение #2


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

Группа: Участник
Сообщений: 258
Регистрация: 27.12.2010
Из: Дмитров
Пользователь №: 2309

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




Репутация:   8  


у меня все правильно отработал.

Но справедливости ради скажу что я работаю через HTTP прокси
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
vbi
  опции профиля:
сообщение 18.8.2011, 10:53
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 5
Регистрация: 17.8.2011
Пользователь №: 2813

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




Репутация:   0  


Что ж такое. Скажите, у кого-нибудь еще работает, но кто не через прокси?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
PAFOS
  опции профиля:
сообщение 18.8.2011, 14:30
Сообщение #4


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

Группа: Участник
Сообщений: 258
Регистрация: 27.12.2010
Из: Дмитров
Пользователь №: 2309

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




Репутация:   8  


попробуй reply->readAll();
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
vbi
  опции профиля:
сообщение 19.8.2011, 9:37
Сообщение #5


Новичок


Группа: Новичок
Сообщений: 5
Регистрация: 17.8.2011
Пользователь №: 2813

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




Репутация:   0  


Пробовал, то же самое. Но прослушав сниффером, увидел, что текст ответа пустой, а в заголовке ответа есть редирект, но пройдя последовательно по всем редиректам попадаю на страницу оповещения яндекса о возможной подмене страницы злоумышлинниками.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ufna
  опции профиля:
сообщение 19.8.2011, 10:30
Сообщение #6


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

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

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




Репутация:   5  


а без www пробовал?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
vbi
  опции профиля:
сообщение 19.8.2011, 10:38
Сообщение #7


Новичок


Группа: Новичок
Сообщений: 5
Регистрация: 17.8.2011
Пользователь №: 2813

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




Репутация:   0  


без www редиректит на www
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
vbi
  опции профиля:
сообщение 19.8.2011, 11:38
Сообщение #8


Новичок


Группа: Новичок
Сообщений: 5
Регистрация: 17.8.2011
Пользователь №: 2813

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




Репутация:   0  


Буду пользоватся QWebView, там проблем нет
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
thechicho
  опции профиля:
сообщение 26.9.2011, 9:11
Сообщение #9


Студент
*

Группа: Участник
Сообщений: 38
Регистрация: 26.9.2011
Пользователь №: 2907

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




Репутация:   0  


подскажите, плиз, примером кода, как обрабатывать редиректы? в cURL на php я использовал FOLLOWLOCATION, true. есть ли аналог в Qt? или нужно каждый раз парсить из заголовков ответа Location: url и делать на него request?

//Буду пользоватся QWebView, там проблем нет
приведите пример кода?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 22.12.2024, 9:23