我正在向www.google.co.in
发送一个简单的HTTP get请求,但是响应中却得到了空字符串。
这是我的代码:
void MainWindow::on_pushButton_clicked()
{
QNetworkAccessManager * mgr = new QNetworkAccessManager(this);
connect(mgr,SIGNAL(finished(QNetworkReply*)),this,SLOT(onfinish(QNetworkReply*)));
QUrl url("www.google.co.in");
url.setScheme("http");
QNetworkRequest request(url);
request.setHeader(QNetworkRequest::ContentTypeHeader,"application/json");
mgr->get(QNetworkRequest(QUrl("www.google.co.in")));
}
void MainWindow::onfinish(QNetworkReply *rep)
{
QByteArray bts = rep->readAll();
QString str(bts);
qDebug() << str;
}
Output is :""
向我自己的服务器发布请求时遇到同样的问题。
在专业文件中,我已完成QT += core gui network
答案 0 :(得分:2)
您必须添加正确的URL,此外,建议您在信号和插槽之间使用新的连接,最后必须删除QNetworkReply
:
void MainWindow::on_pushButton_clicked()
{
QUrl url("https://www.google.co.in/");
QNetworkAccessManager *mgr = new QNetworkAccessManager(this);
connect(mgr,&QNetworkAccessManager::finished,this,&MainWindow::onfinish);
mgr->get(QNetworkRequest(url));
}
void MainWindow::onfinish(QNetworkReply *rep)
{
QByteArray bts = rep->readAll();
QString str(bts);
qDebug() << str;
rep->deleteLater();
}