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 :

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();
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.

J'ai également essayé ceci avec le même résultat :

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);
    }
Voici l'url d'une page pour laquelle j'ai ce problème :
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