[Interest] Code using QNetworkAccessManager::post() working on Linux but not on Mac
René J. V. Bertin
rjvbertin at gmail.com
Sun Aug 27 10:47:49 CEST 2017
Thiago Macieira wrote:
>> I have no idea. I just note that the data with the current call is different
>> from what QUrlQuery gives; I didn't try the QUrlQuery result because I have
>> no idea of the potential implications of those differences.
>
> Can you elaborate what comes out differently?
QUrl::toPercentEncoding() encodes anything that doesn't look like isalnum
unencoded data: "a=update&s=2.0&p=passphras/r=(Fake^Password)&v=2.1.1.0&d=0"
QUrl::toPercentEncoding(dataToEncode, "&=") :
"a=update&s=2.0&p=passphras%2Fr=%28Fake%5EPassword%29&v=2.1.1.0&d=0"
QUrlQuery::toString() :
"a=update&s=2.0&p=passphras/r%3D(Fake%5EPassword)&v=2.1.1.0&d=0"
QUrlQuery::query() :
"a=update&s=2.0&p=passphras/r%3D(Fake%5EPassword)&v=2.1.1.0&d=0"
But again, even if those are exchangeable, why is QUrlQuery better? As far as I
can tell I'd be using that class or QUrl to construct something that's not an
URL. Something that could be done directly by
{QString,QByteArray}::toPercentEncoding() if such a method existed. And at best
I'd be replacing 2 calls to construct that data buffer with 2 different calls.
Or else 2 lines with 7.
Maintainability is maybe a bit better with the API where each key/value pair is
added individually. But this is not a case where anything is likely to change
(or be refactored) often except possibly for the things that are already defined
in macros.
R.
More information about the Interest
mailing list