久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

Qt QNetworkReply 始終為空

Qt QNetworkReply is always empty(Qt QNetworkReply 始終為空)
本文介紹了Qt QNetworkReply 始終為空的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我想查看 GET 請求的結果.根據我的理解,這段代碼應該可以做到.我做錯了什么?

I want to see the results of a GET request. By my understanding, this code should do it. What am I doing wrong?

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

void getDoc::replyFinished(QNetworkReply *reply)
{
    qDebug() << reply->error(); //prints 0. So it worked. Yay!
    QByteArray data=reply->readAll();
    qDebug() << data; // This is blank / empty
    QString str(data);
    qDebug() << "Contents of the reply: ";
    qDebug() << str; //this is blank or does not print.
}

代碼編譯并運行良好.它只是不起作用.

The code compiles and runs fine. It just doesn't work.

推薦答案

嘗試將您的回復已完成槽修改為如下所示:

Try modifying your replyFinished slot to look like this:

QByteArray bytes = reply->readAll();
QString str = QString::fromUtf8(bytes.data(), bytes.size());
int statusCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();

然后您可以打印 statusCode 以查看是否收到 200 響應:

You can then print the statusCode to see if you are getting a 200 response:

qDebug() << QVariant(statusCode).toString();

如果您收到 302 響應,您將收到狀態重定向.你需要像這樣處理它:

If you are getting a 302 response, you are getting a status redirect. You will need to handle it like this:

if(statusCode == 302)
{
    QUrl newUrl = reply->attribute(QNetworkRequest::RedirectionTargetAttribute).toUrl();
    qDebug() << "redirected from " + replyUrl + " to " + newUrl.toString();
    QNetworkRequest newRequest(newUrl);
    manager->get(newRequest);
    return;
}

我在遇到狀態碼 302 時返回,因為我不想執行其余的方法.

I'm returning when encountering a status code of 302 since I don't want the rest of the method to execute.

我希望這會有所幫助!

這篇關于Qt QNetworkReply 始終為空的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

How can I read and manipulate CSV file data in C++?(如何在 C++ 中讀取和操作 CSV 文件數據?)
In C++ why can#39;t I write a for() loop like this: for( int i = 1, double i2 = 0; (在 C++ 中,為什么我不能像這樣編寫 for() 循環: for( int i = 1, double i2 = 0;)
How does OpenMP handle nested loops?(OpenMP 如何處理嵌套循環?)
Reusing thread in loop c++(在循環 C++ 中重用線程)
Precise thread sleep needed. Max 1ms error(需要精確的線程睡眠.最大 1ms 誤差)
Is there ever a need for a quot;do {...} while ( )quot; loop?(是否需要“do {...} while ()?環形?)
主站蜘蛛池模板: 99免费在线视频 | 激情五月婷婷丁香 | 欧美性网| 欧美精品一区在线 | 日韩视频在线一区 | 免费v片在线观看 | 自拍偷拍亚洲一区 | 一区二区伦理电影 | 在线观看国产 | 一区二区三区四区电影视频在线观看 | 中文字幕一级毛片视频 | 欧美精品一区二区三区在线播放 | 欧美精品久久 | 完全免费av在线 | 成人网址在线观看 | 精品网 | 99国内精品| 久久高清精品 | 亚洲国产精品suv | 91视频进入 | 91在线电影| 国产日韩欧美 | 国产女人叫床高潮大片免费 | jizz18国产| 日韩一区二区在线视频 | 亚洲嫩草| 国产精品永久免费视频 | 影音先锋中文字幕在线观看 | 在线观看亚洲一区二区 | 蜜桃在线播放 | 日韩一区二区在线播放 | 久久av网站 | 亚洲欧美激情国产综合久久久 | 看羞羞视频 | 国产一区中文 | 日本久久网 | 草久久免费视频 | 91在线影院| 久久综合影院 | 一级久久久久久 | 97国产精品视频人人做人人爱 |