如何解决Qt +搜索引擎API
| 我需要在桌面程序中使用Google(或其他引擎)搜索。 您能否给我一个示例,说明如何将POST请求发送到API并获得答案。 我使用Qt和C ++。 例如,此代码不起作用(关于yandex API):QString* query = new QString(\"<?xml version=\"\"1.0\"\" encoding=\"\"UTF-8\"\"?>\"
\"<request><query>\" + ui->search_le->text().toUtf8() +
\"</query><groupings><groupby attr=\"\"d\"\"\"
\"mode=\"\"deep\"\"groups-on-page=\"\"10\"\"docs-in-group=\"\"1\"\" />\"
\"</groupings></request>\");
QUrl apiurl = QUrl(\"http://xmlsearch.yandex.ru/xmlsearch?user=*******&\"
\"key=03.*******:**************f01e29f007af7994e951\");
manager = new QNetworkAccessManager();
request = new QNetworkRequest(apiurl);
reply = manager->post(*request,query->toUtf8());
QString answer = QString::fromUtf8(reply->readAll());
而且我真的不知道如何找到问题。
感谢所有能够帮助我的人。
解决方法
您走在正确的轨道上。了解有关Qt中的信号和插槽的信息。 http://doc.qt.io/archives/qt-4.7/signalsandslots.html
您必须将QNetworkAccessManager的“ 1”信号连接到您自己的插槽,然后调用Reply-> readAll();。
在调用post方法之前,请执行此操作。
connect(manager,SIGNAL(finished(QNetworkReply*)),this,SLOT(replyFinished(QNetworkReply*)));
然后在您的课程中实现replyFinished
方法。
MyClass::replyFinished(QNetworkReply* reply)
{
QString answer = QString::fromUtf8(reply->readAll());
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。