zoukankan      html  css  js  c++  java
  • QNetworkAccessManager跳转URL处理(使用QNetworkRequest::RedirectionTargetAttribute获得跳转URL)

    connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(onFinished(QNetworkReply*)));

    void MainClass::onFinished(QNetworkReply* reply)
    {
       int statusCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();

    QString strUrl = reply->attribute(QNetworkRequest::RedirectionTargetAttribute).toString();

       qDebug() << "FINISHED" << statusCode;

       switch (statusCode)
       {
          case 200:                               // OK
          {
             // process reply

             if (!isLoggedIn())
                storeAuthorization(reply);

             switch (state)
             {
                case stGetCalendars:
                {
                   parseCalendarList(reply);
                   break;
                }
                case stGetEvents:
                {
                   parseEventList(reply);
                   break;
                }
             }

             break;
          }

          case 302:                               // redirect (Location: [URL])
          {
             qDebug() << "redirected to" << locationOf(reply);
             prepare(locationOf(reply));
             manager->get(*lastRequest);

             break;
          }

          case 400:                               // bad request
          {
             QMessageBox::warning(this, "Error", "Network error (HTTP400/Bad Request)");
             break;
          }

          case 403:                               // permission denied
          {
             QMessageBox::warning(this, "Permission denied", "Username or password invalid");
             break;
          }

          default:
          {
             QByteArray replyData = reply->readAll();
             qDebug() << "Unknown response" << replyData;
             break;
          }
       }

       reply->deleteLater();

       // do anything afterwards?

       after();            // <-- next request via manager->get()

       qDebug() << "request done";
    }

    http://blog.csdn.net/itjobtxq/article/details/8268675

  • 相关阅读:
    虚拟目录的配置
    php7.0.24-nts配置步骤
    什么是PHP
    网络篇-NSURLSessionDownloadTask上传
    网络篇-NSURLConnection原生上传
    网络篇-NSURLConnection进度下载
    网络篇-NSURLSessionDownloadTask进度下载(续上节)
    网络篇-NSURLSession介绍
    网络篇-解析XML
    多线程篇-RunLoop
  • 原文地址:https://www.cnblogs.com/findumars/p/5574318.html
Copyright © 2011-2022 走看看