[Interest] Encode POST data for QNetworkAccessManager
NoRulez
norulez at me.com
Wed Feb 1 13:18:26 CET 2012
Hi,
I sent:
\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b
In the php script I receive:
\b[A-Z0-9._% -] @[A-Z0-9.-] \.[A-Z]{2,4}\b
Here is the relevant code:
QByteArray base64EncodedQIcon;
QByteArray data;
QUrl params;
params.addQueryItem(QLatin1String("name"), QLatin1String("Email
Regex"));
params.addQueryItem(QLatin1String("regex"),
QLatin1String("\\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}\\b"));
params.addQueryItem(QLatin1String("icon"),
base64EncodedQIcon.constData()));
params.addQueryItem(QLatin1String("created"),
QDateTime::currentDateTimeUtc().toString(Qt::ISODate));
data.append(QUrl::toPercentEncoding(params.toString()));
//data.append(params);
data.remove(0, 1); // Remove the '?'
QList<QPair<QString, QString> > queryItems;
queryItems << QPair<QString, QString>(QLatin1String("action"),
QLatin1String("upload"));
QUrl url;
url.setScheme(QLatin1String("http"));
url.setHost(QLatin1String("www.mydomain.com"));
url.setPath(QLatin1String("/script.php"));
url.setQueryItems(queryItems);
QNetworkAccessManager *pManager = new
QNetworkAccessManager(this);
connect(pManager, SIGNAL(finished(QNetworkReply*)), this,
SLOT(uploadError(QNetworkReply*)));
connect(pManager,
SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)), this,
SLOT(onSslErrors(QNetworkReply*,QList<QSslError>)));
QNetworkRequest request;
request.setUrl(url);
QNetworkReply *pReply = pManager->post(request, data);
pReply->ignoreSslErrors();
What is the correct way to send/receive a 1:1 copy of the string which I
sent?
Best Regards
NoRulez
-----Ursprüngliche Nachricht-----
Von: interest-bounces+norulez=me.com at qt-project.org
[mailto:interest-bounces+norulez=me.com at qt-project.org] Im Auftrag von
Thiago Macieira
Gesendet: Dienstag, 31. Jänner 2012 19:03
An: interest at qt-project.org
Betreff: Re: [Interest] Encode POST data for QNetworkAccessManager
On Tuesday, 31 de January de 2012 18.53.44, <mailto:norulez at me.com>
norulez at me.com wrote:
> Hi,
>
> I want to send some specific data to a PHP Script.
> For example a regular expression.
>
> My problem now is that a '+' is replaced by a whitespace for example.
>
> Any hints would be great.
You didn't tell us how you encoded it. So we don't know what went wrong.
HTML forms use "+" for spaces. If you want to transmit a plus, make sure you
write "%2b".
--
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
Software Architect - Intel Open Source Technology Center
PGP/GPG: 0x6EF45358; fingerprint:
E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20120201/f5c5b3ca/attachment.html>
More information about the Interest
mailing list