[Interest] QNetwork classes for submitting google forms
Nicholas Yue
yue.nicholas at gmail.com
Sat Jun 12 19:29:57 CEST 2021
I have now moved the code into a small UI test app so there is already a Qt
loop in the main app but it stopped working (status code not printed out)
again, do I have to retain the app.exec() and app.exit() ?
```
#include "GForm.h"
#include "ui_form.h"
#include <QVBoxLayout>
#include <QUiLoader>
#include <QFile>
#include <QApplication>
#include <QDirIterator>
#include <QDebug>
#include <QFile>
#include <QClipboard>
#include <QtNetwork/QNetworkRequest>
#include <QtNetwork/QNetworkAccessManager>
#include <QUrlQuery>
#include <QDebug>
#include <QNetworkReply>
#include <QCoreApplication>
#include <QThread>
#include <iostream>
GForm::GForm(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Form)
{
ui->setupUi(this);
connect( ui->cancel_pushButton, SIGNAL(clicked()), this, SLOT(close() ) );
connect( ui->submit_pushButton, SIGNAL(clicked()), this,
SLOT(doSubmit() ) );
}
GForm::~GForm()
{
delete ui;
}
void GForm::doSubmit()
{
QString name = ui->name_lineEdit->text();
QString message = ui->message_lineEdit->text();
QString email = ui->email_lineEdit->text();
qDebug() << QString("Do Submission [message = %1, name = %2, email
= %3]").arg(message).arg(name).arg(email);
{
// Google form submission
QUrlQuery postData;
postData.addQueryItem("entry.305082368", message);
postData.addQueryItem("entry.1264643879", name);
postData.addQueryItem("entry.1004643569", email);
QUrl serviceUrl("https://docs.google.com/forms/d/1ngIkIaj0CEdJl1ucL9JgVq82rUquPbKPGt4066bKscA/formResponse");
QNetworkRequest request(serviceUrl);
request.setHeader(QNetworkRequest::ContentTypeHeader,
"application/x-www-form-urlencoded");
QNetworkAccessManager networkManager;
QObject::connect(&networkManager, &QNetworkAccessManager::finished,
[&](QNetworkReply *reply) {
int status =
reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
qDebug() << "Got status:" << status << "Data:" << reply->readAll();
// etc....
reply->deleteLater();
});
networkManager.post(request,
postData.toString(QUrl::FullyEncoded).toUtf8());
}
}
```
On Fri, 11 Jun 2021 at 21:07, Max Paperno <max-l at wdg.us> wrote:
>
> On 6/11/2021 10:32 PM, Thiago Macieira wrote:
> > On Friday, 11 June 2021 14:10:57 PDT Max Paperno wrote:
> >> while (!gotResponse)
> >> sleep(1) // or whatever sleep method, just waiting for a response.
> >
> > NEVER EVER sleep.
> >
> > Insert a "return" here and let your slot be called when the time is
> right.
> >
>
> Right, too much Python lately... "should" have been `processEvents()`
> which is when I realized there were no events to process w/out a Qt loop
> in the first place. Returning from main() wouldn't have solved the
> issue though.
>
> -Max
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> https://lists.qt-project.org/listinfo/interest
>
--
Nicholas Yue
Graphics - Arnold, Alembic, RenderMan, OpenGL, HDF5
Custom Dev - C++ porting, OSX, Linux, Windows
http://au.linkedin.com/in/nicholasyue
https://vimeo.com/channels/naiadtools
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20210612/1d6f8d56/attachment.html>
More information about the Interest
mailing list