2017-04-20 2 views
0

J'écris un programme pour se connecter à un jeu et obtenir des informations à partir du compte. Après avoir fait une demande de publication avec un nom d'utilisateur et un mot de passe, je fais une requête get au même endroit afin de télécharger la source html nécessaire. Toutefois, en faisant qDebug()<<QString(reply->readAll()); , vous imprimez "\u001F?\b", au lieu du code source entier de la page.Qt GET demande une réponse étrange

La réponse get a le code d'état 200 et la fonction error() renvoie NetworkError (NoError). Pour les demandes de publication et d'obtention, j'utilise les informations d'en-tête obtenues à partir de l'onglet réseau de chrome dans les options de développement combinées avec les cookies obtenus à partir des en-têtes de réponse précédents.

Je fais une requête get après la demande de connexion, car c'est ce qui semble se produire dans la page Web actuelle, telle qu'affichée dans les options du développeur.

Répondre

1

La réponse peut être gzippée. La décompression a-t-elle pour résultat le résultat attendu?

+0

Ceci est une supposition. J'ai collé vos personnages dans un fichier et j'ai essayé de les décompresser en ligne de commande et j'ai échoué, mais il se peut qu'il y ait un en-tête de fichier qui me manque. Je n'ai jamais essayé de faire ça auparavant. – Evan

+0

Un commentaire de cette https://forum.qt.io/topic/4089/solved-downloading-gzip-file-but-it-s-no-longer-compressed-when-i-try-to-open-the -local-file/5 "sujet états: _" D'un coup d'oeil sur les sources Qt, il semble que QNetworkAccessmanager et amis décode automatiquement (décompresse) les données gzippées, si l'en-tête "content-encoding" est réglé sur "gzip". "_ Mais même si les données seraient compressées, je devrais obtenir une réponse beaucoup plus longue je devine? –

+0

Après avoir écrit le ByteArray dans un fichier et l'avoir ouvert avec WinRAR j'ai eu la sortie attendue. –