找回密码
 立即注册
收起左侧

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

4
回复
8285
查看
[复制链接]
累计签到:7 天
连续签到:1 天
来源: 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的网址
回复

使用道具 举报

累计签到:7 天
连续签到:1 天
2016-4-28 13:04:42 显示全部楼层
可能是网络问题,可能被屏蔽了,在学校的机子一直报错,
回复

使用道具 举报

累计签到:2 天
连续签到:1 天
2017-4-21 19:03:32 显示全部楼层
我也是有同样的问题 但是我的状态码是200。。。
回复

使用道具 举报

累计签到:1 天
连续签到:1 天
2018-8-8 15:59:42 显示全部楼层
本帖最后由 xiyunqiao 于 2018-8-8 16:02 编辑

?????????????????????????
回复

使用道具 举报

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

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了