byte[] httpDecompress(HttpDatagram http)
{
int magicnum = 0x1f8b;
Stream str= http.Body.ToMemoryStream();
using (var zipStream = new GZipStream(str, CompressionMode.Decompress))
using (var resultStream = new MemoryStream())
{
zipStream.CopyTo(resultStream);
return resultStream.ToArray();
}
}
il y a le code mais il donne une erreur de nombre magique. Comment puis-je trouver le début de la chaîne GZip, je pense que la source du problème est là. Quelqu'un peut-il aider?Comment puis-je trouver le début de la chaîne Gzip dans un MemoryStream?
Qu'est-ce qu'une "chaîne gzip"? –
L'erreur _ "Le nombre magique dans l'en-tête GZip n'est pas correct" _ signifie que vous avez affaire à un fichier non-Zip, ou que le fichier est corrompu. – CodeCaster
J'essaie d'obtenir des données de corps HTTP à partir d'un paquet TCP. Son type de codage de transfert est Gzip. Je le convertis en flux de mémoire et essaye de le décompresser. Donne une fausse erreur de nombre magique, je pense, parce qu'elle n'obtient pas le bon point de départ. –