如何在正确使用QNetworkRequest的POST后使用GET

时间:2016-09-17 01:28:43

标签: c++ qt http post get

我的代码存在一些问题,我会尽力解释。

好吧,我想构建一种机器人来自动完成网站中的某项任务(www.milanuncios.com)。 我登录后需要获取源文件,这样我就可以为我的宣布保存一些参考资料,所以问题出现了

我使用QT,使用C ++和QNetworkAccessManager。 我设法从网页www.milanuncios.com/mis-anuncios/下载源文件,但你可以看到这是一个登录表单。

登录后,它会刷新并显示宣布,我需要在登录后下载文件,或者我没有得到任何内容。

好吧,我尝试对表单进行POST,如下所示我可能已登录:

   QUrl url("http://www.milanuncios.com/mis-anuncios/");
   QNetworkRequest request(url);
   request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");

   QUrlQuery params;
   params.addQueryItem("email","htful1989@teleworm.us");
   params.addQueryItem("contra","4hwk");

   this->manager->post(request, params.toString(QUrl::FullyEncoded).toUtf8());
   QObject::connect(manager, SIGNAL(finished(QNetworkReply *)), this, SLOT(replyFinished(QNetworkReply * )));

一旦我完成了,我使用GET下载源代码,但它总是相同的(登录表单源,而不是宣布用户区域......)

      this->reply = manager->get(QNetworkRequest(QUrl("http://www.milanuncios.com/mis-anuncios/")));

      QObject::connect(manager, SIGNAL(finished(QNetworkReply *)), this, SLOT(replyFinished(QNetworkReply * )));

我有以下信号/插槽:

void MainWindow::replyFinished(QNetworkReply *reply) {


qDebug() << ("HolaREPLY");
qDebug() << "start test";
qDebug() <<  reply->readAll();
qDebug() << "end test";
}

我不知道自己做错了什么,也许还有很多事情,所以我来找你一些事......提前谢谢:)

PD:参数查询的表单值:

编辑:解决方案由迈克提供,我没有在完成()SLOT中调用GET,现在它正在工作,但我还有另一个问题:

我的表格并不好,我的意思是,我正在使用&#34;电子邮件&#34;和&#34;反对&#34;作为字段,但这些没有属性名称,只有ID = email和ID = contra。

如何选择?

我上传了一张图片:(黄色是我需要的字段,红色是错误的字段)

http://imgur.com/a/V206J

0 个答案:

没有答案