[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