找回密码
 立即注册

QNetworkAccessManager想获得一个网页中的信息,一直为空

发表于 2016-4-28 12:56:54 | 显示全部楼层 |阅读模式
1Qter豆
求解决方案?
错误信息:
enum QNetworkReply::NetworkError
官方文档:QNetworkReply::HostNotFoundError        3        the remote host name was not found (invalid hostname)
程序源代码如下:
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    manager = new QNetworkAccessManager(this);
    connect(manager,SIGNAL(finished(QNetworkReply*)),this,SLOT(replyFinished(QNetworkReply*)));
    manager->get(QNetworkRequest(QUrl("http://www.baidu.com")));

    ui->progressBar->hide();

}

void MainWindow::replyFinished(QNetworkReply *reply)
{
    QString all = reply->readAll();
    ui->textBrowser->setText(all);
    reply->deleteLater();
}

百度的一个包含错误判断的代码:
void DownPages::replyFinished(QNetworkReply * reply)
{
    //查看是否有错误
    switch(reply->error())
    {
    //如果没有错误把页面输出
    case QNetworkReply::NoError:
        qDebug()<<"no error";

    {
        QTextCodec * cod=QTextCodec::codecForName("utf-8");
        QString str=cod->toUnicode(reply->readAll());
        qDebug()<<str;
    }
        break;
    case QNetworkReply::ContentNotFoundError:
    {
        QUrl failedUrl;
        failedUrl = reply->request().url();
        int httpStatus = reply->attribute(
                    QNetworkRequest::HttpStatusCodeAttribute).toInt();
        QString reason = reply->attribute( QNetworkRequest::HttpReasonPhraseAttribute ).toString();
        qDebug()<<"url"<<failedUrl <<httpStatus<<"   "<<reason;
    }
        break;
    default:
    {
        qDebug()<<"Have error"<<reply->errorString()<<" error "<<reply->error();
    }
    }
    qDebug()<<"finished";
}

最佳答案

查看完整内容

除了被屏蔽,也可能是http 301 redirect, QNetworkReply里面可以查看是不是存在redirect的网址
回复

使用道具 举报

发表于 2016-4-28 12:56:55 | 显示全部楼层
除了被屏蔽,也可能是http 301 redirect,  QNetworkReply里面可以查看是不是存在redirect的网址
回复

使用道具 举报

 楼主| 发表于 2016-4-28 13:04:42 | 显示全部楼层
可能是网络问题,可能被屏蔽了,在学校的机子一直报错,
回复

使用道具 举报

发表于 2017-4-21 19:03:32 | 显示全部楼层
我也是有同样的问题 但是我的状态码是200。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

咚咚锵啦啦啦

    主题

    帖子

    18

    积分

    Qter1级会员

    Rank: 1

    积分
    18

Qter1级会员

发私信

Qt开源社区——开源 共享 自由

微信扫一扫
查看精品教程!