Per gestire le comunicazioni web della propria applicazione viene usata la classe QNetworkAccessManager.
Questa classe possiede ovviamente i metodi necessari per effettuare richieste di tipo GET, POST, PUT e HEAD, ovvero tutto il necessario per gestire con comodità la maggior parte delle comunicazioni via HTTP.
In particolare il metodo post è così definito:
QNetworkReply * post ( const QNetworkRequest & request, const QByteArray & data )
Curiosamente però, volendolo usare è necessario comporre manualmente il parametro data che, come sappiamo, risulta essere una lista di coppie chiave=valore separate dalla e commerciale &.
Può quindi risultare utile una funzione come questa:
QByteArray NetworkAccessManager::postDataEncoding(ParamHash hash) { QStringList list; QHashIterator i(hash); while (i.hasNext()) { i.next(); list << i.key()+"="+QUrl::toPercentEncoding(i.value()); } return list.join("&").toUtf8(); }
dove ParamHash è semplicemente un hash di stringhe definito in questa maniera:
typedef QHash<QString, QString> ParamHash;
Pingback:Funzione per la codifica dei dati da inviare via HTTP POST - Nokia Symbian Qt KDE Italia - Webpedia