Bonjour,
alors voilà j'ai un petit soucis pour effectuer l'envoie d'un fichier JSON sur un serveur par requête POST. Tout d'abord, je vous donne un extrait compilable de ce que je fais :
Donc comme cela ne fonctionne pas sur le serveur sur lequel je dois bosser, je préfère pour l'instant comme dans l'exemple tester sur un truc comme http://validate.jsontest.com ; donc techniquement je lui envoie un truc JSON et il doit me dire si il est valide. Dans le cas de l'exemple, j'envoie un objet vide donc valide. MAIS comme toujours avec mon bout de code j'ai un soucis d'envoie de la donnée...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 #include <iostream> #include <QCoreApplication> #include <QFile> #include <QJsonArray> #include <QJsonObject> #include <QJsonDocument> #include <QNetworkAccessManager> #include <QNetworkReply> #include <QUrl> #include <QCommandLineParser> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QByteArray jsonDocument("{}"); QUrl url("http://validate.jsontest.com/?json="); QNetworkRequest request(url); request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); QNetworkAccessManager manager; QNetworkReply* reply = manager.post(request, jsonDocument); while(!reply->isFinished()) { a.processEvents(); } std::cout << "Ok, Server response : " << response.toStdString() << std::endl; return 0; }
Réception :
ALORS que si je le fais classiquement avec la commande curl comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Ok, Server response : { "error": "A JSONObject text must begin with '{' at 1 [character 2 line 1]", "object_or_array": "object", "error_info": "This error came from the org.json reference parser.", "validate": false }
on obtient bien :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 curl -X POST -d "json={}" http://validate.jsontest.com
donc il doit me manquer un élément de compréhension dans mon code... si quelqu'un pouvait m'éclairer ça serait GENIAL
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 { "object_or_array": "object", "empty": true, "parse_time_nanoseconds": 10874, "validate": true, "size": 0 }
Merci d'avance !!!
Partager