标题:为什么用Qt获取某些网页上的数据失败?
作者:y1363386323
日期:2017-12-23 19:26
内容:
我想用Qt获取网页上的数据, 可为什么有些网站上的数据能得到, 而有些网站上的数据不能得到?
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
public slots:
void replyFinished(QNetworkReply *reply);
private:
Ui::MainWindow *ui;
QNetworkAccessManager *manger;
};
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
manger=new QNetworkAccessManager;
manger->get(QNetworkRequest(QUrl("http://www.suse.edu.cn/")));
connect(manger,SIGNAL(finished(QNetworkReply*)),
this,SLOT(replyFinished(QNetworkReply*)));
}
void MainWindow::replyFinished(QNetworkReply *reply)
{
QTextCodec *codec=QTextCodec::codecForName("utf8");//使用utf8编码, 这样可以显示中文
QString str =codec->toUnicode(reply->readAll());
ui->textBrowser->setText(str);
reply->deleteLater();//最后要释放replay对象
}
如上所示, 如果网站是http://www.suse.edu.cn/则能够得到数据.
如果把网站换成http://www.aicai.com/则不能得到数据, 不知道哪出了问题???
#1 [hitler++ 12-25 08:48]
301,302,304 状态
content-encoding
QNetworkAccessManager的get能帮你全部处理吗?
#2 回 hitler++ 的帖子 [y1363386323 12-25 09:28]
hitler++:301,302,304 状态
content-encoding
QNetworkAccessManager的get能帮你全部处理吗?(2017-12-25 08:48)
你说的我不明白, 你知道是哪出了问题吗?
#3 [linker 12-25 09:45]
看一下错误信息,设置相应的header
#4 回 linker 的帖子 [y1363386323 12-25 09:53]
linker:看一下错误信息,设置相应的header
(2017-12-25 09:45)
看错误信息没有用, 根本不知道哪出了问题, 大侠, 高抬贵手帮帮我
#5 [angelus 12-25 10:55]
p_reply = p_manager->post(request,byte);
connect(p_reply , SIGNAL(finished()) , this , SLOT(onFinished()));
connect(p_reply , SIGNAL(error(QNetworkReply::NetworkError)) , this , SLOT(onError(QNetworkReply::NetworkError)));
在类中定义一个 QNetworkReply 的指针,然后再请求的地方连接 finished信号和error信号.
然后看下错误信槽里边的输出
//请求失败
void onError(QNetworkReply::NetworkError errorCode)
{
// 输出错误码及错误信息;
qDebug()