zoukankan      html  css  js  c++  java
  • QT通过url下载图片到本地

    /*
    strUrl:下载图片时需要的url
    strFilePath:下载图片的位置(/home/XXX/YYY.png)
    */
    void ThorPromote::downloadFileFromUrl(QString strUrl, QString strFilePath)
    {
        qDebug() << strUrl << "    " << strFilePath;
        QFile file;
        file.setFileName(strFilePath);
        if(file.open(QIODevice::WriteOnly))
        {
            QByteArray byte = webhelper::InitGetRequest(strUrl, "downImgFromUrl");
            file.write(byte);
            file.close();
        }
    }
    
    
    //get
    QByteArray webhelper::InitGetRequest(QString url, QString obj)
    {
        //循环拼接
        QString baseUrl =url;
        //构造请求
        QNetworkRequest request;
        request.setUrl(QUrl(baseUrl));
        QNetworkAccessManager *manager = new QNetworkAccessManager();
        // 发送请求
        QNetworkReply *pReplay = manager->get(request);
        //开启一个局部的事件循环,等待响应结束,退出
        QEventLoop eventLoop;
        QObject::connect(pReplay,SIGNAL(finished()), &eventLoop, SLOT(quit()));
    
        //add timeout deal
        QTimer *tmpTimer = new QTimer();
        connect(tmpTimer,SIGNAL(timeout()),&eventLoop, SLOT(quit()));
        tmpTimer->setSingleShot(true);
        tmpTimer->start(5000);
        eventLoop.exec();
        tmpTimer->stop();
    
        if (pReplay->error() == QNetworkReply::NoError)
        {
            qInfo() << QString("request %1 NoError").arg(obj);
        }
        else
        {
            qWarning()<<QString("request %1 handle errors here").arg(obj);
            QVariant statusCodeV = pReplay->attribute(QNetworkRequest::HttpStatusCodeAttribute);
            //statusCodeV是HTTP服务器的相应码,reply->error()是Qt定义的错误码,可以参考QT的文档
            qWarning()<<QString("request %1 found error ....code: %2 %3").arg(obj).arg(statusCodeV.toInt()).arg((int)pReplay->error());
            qWarning(qPrintable(pReplay->errorString()));
        }
        //获取响应信息
        QByteArray bytes = pReplay->readAll();
        return bytes;
    }
  • 相关阅读:
    从搜索引擎角度看SEO
    关键词排名与网站优化有哪三大误区?
    真正提升关键词排名的外链应该怎样发?
    高质量外链的十大特性
    四个方面分析SEO如何提高网站的权重
    Linux(ubuntu)使用dd从iso制作win7安装u盘(读卡器一样),以及备份分区
    折腾slidingmenu
    生命游戏介绍
    21232f297a57a5a743894a0e4a801fc3
    final关键字
  • 原文地址:https://www.cnblogs.com/xupeidong/p/10332844.html
Copyright © 2011-2022 走看看