Bonjour,
Je viens d'écrire un programme qui me permet nottament de télécharger des pages Web. Il fonctionne correctement pour la plupart des pages web. Mais recemment je suis tombé sur des pages pour lesquelles j'ai un comportement innatendu. En effet la page que je télécharge est tronquée.
J'ai remarqué que cela intervenait pour des pages contenant des caractères 0x00 (NUL chacater ?)
J'arrive donc à lire le contenu de la page jusqu'à la première occurence du caractère 0x00 mais pas ce qui suit. Comme si ce caractère indiquait la fin du flux de la réponse.
J'ai utilisé ce code pour lire la réponse :
Dans cet exemple j'utilise une requête asynchrone mais j'ai également fait le test en synchrone et j'ai toujours le même problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 IAsyncResult ar = null; HttpWebResponse resp = null; Stream responseStream = null; String content = null; ... resp = (HttpWebResponse)req.EndGetResponse(ar); responseStream = resp.GetResponseStream(); StreamReader sr = new StreamReader(responseStream, Encoding.UTF8); content = sr.ReadToEnd();
J'ai également essayé ceci avec le même résultat :
Voici l'url d'une page pour laquelle j'ai ce problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 HttpWebResponse resp = null; Stream responseStream = null; String content = new String(); ... responseStream = resp.GetResponseStream(); byte[] buffer = new byte[4096]; int bytesRead = 1; while (bytesRead > 0) { bytesRead = responseStream.Read(buffer, 0, 4096); content += Encoding.UTF8.GetString(buffer, 0, bytesRead); }
http://www.daz3d.com/i/search/search..._m=dps_tx1662b
Quelqu'un aurait-il une idée de la cause, et encore mieux la solution pour régler ce problème ?
Merci d'avance.
Euyeusu
Partager