QNetworkAccessManager 用 url 打开一个 json 数据
Posted
技术标签:
【中文标题】QNetworkAccessManager 用 url 打开一个 json 数据【英文标题】:QNetworkAccessManager open a json data with url 【发布时间】:2014-09-25 08:19:37 【问题描述】:我会打开带有 c++ / qt 链接的 *.json 数据。当我在 Firefox 中打开此 url 时,它会返回一个下载此数据的问题。但是在我的代码dosnt工作的那一刻,每次都会出现网络错误。我会用我的程序读取这个 json 数据并将其放入 QTableView。我必须使用 QNetworkAccessManager 还是这是错误的方式?
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
QObject::connect(manager, SIGNAL(finished(QNetworkReply*)),
this, SLOT(serviceRequestFinished(QNetworkReply*)));
manager->get(QNetworkRequest(QUrl("http://google.de")));
void Tester::serviceRequestFinished(QNetworkReply* reply)
// At the end of that slot, we won't need it anymore
reply->deleteLater();
if(reply->error() == QNetworkReply::NoError)
QByteArray data = reply->readAll();
QString Sdata = data;
qDebug(data);
qDebug("no Error");
else
cout<<"Error at Reply"<<endl;
QByteArray data = reply->readAll();
qDebug(data);
【问题讨论】:
错误信息是什么?尝试使用 errorString() 方法调用来获取它 它转到 else ,所以它写:“Error at Reply” 没有这个 gDebug,它说什么都没有......这就是问题 我的意思是,如果发生错误,您应该通过从 QNetworkReply 实例调用 QNetworkReply::errorString() 来打印出错误消息。然后在此处粘贴错误消息文本。 "找不到主机 google.de" 尝试使用http://www。谷歌。 de 而不是 google.de 【参考方案1】:尝试使用带有 www 前缀的 url:
manager->get(QNetworkRequest(QUrl("http://www.google.de")));
【讨论】:
谢谢,但我的原始网址来自 ais ,没有 www 我不能发布它,因为其中包含我的帐户名,但这是链接:data.aishub.net/ws.php?username=exampleName&format=1&output=json&compress=0&latmin=50&latmax=58&lonmin= 5&lonmax=10 这是我使用 URL 时的错误:协议“”未知 @Erdbeerchen,这也是你的问题吗? ***.com/q/25989358/2266412以上是关于QNetworkAccessManager 用 url 打开一个 json 数据的主要内容,如果未能解决你的问题,请参考以下文章
错误:没有用于调用“QNetworkAccessManager::QNetworkAccessManager(Networking* const)”的匹配函数