IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

HttpWebRequest via Proxy Tor / Vidalia


Sujet :

C#

  1. #1
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut HttpWebRequest via Proxy Tor / Vidalia
    Bonjour

    J'essaye d'acceder a un site en passant par le Proxy Vidalia

    Quand j'utilise le proxy Je reçois systématiquement une erreur

    The server committed a protocol violation. Section=ResponseStatusLine

    Exemple : (en accedant le site du forum)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
            HttpWebRequest hwr = (HttpWebRequest) WebRequest.Create("http://www.developpez.net/forums/");
            hwr.Proxy = new WebProxy("127.0.0.1:9051");
            try
            {
              HttpWebResponse wr = (HttpWebResponse)hwr.GetResponse();
            }
            catch (WebException e)
            {
              same = true;
              Thread.Sleep(3 * 1000);
            }
    Sans proxy ca passe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
            HttpWebRequest hwr = (HttpWebRequest) WebRequest.Create("http://www.developpez.net/forums/");
    //        hwr.Proxy = new WebProxy("127.0.0.1:9051");
            try
            {
              HttpWebResponse wr = (HttpWebResponse)hwr.GetResponse();
            }
            catch (WebException e)
            {
              same = true;
              Thread.Sleep(3 * 1000);
            }

    Un expert Web aurais-il une idée du problème ?
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  2. #2
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 3
    Points : 8
    Points
    8
    Par défaut Section=ResponseStatusLine - piste d'une réponse
    Dans mon cas, la problématique est différente, car je maitrise le code du serveur et du client (HTTP), mais le client via WebRequest.GetResponse() partait, tout de même, en exception.

    J'ai essayé toutes les astuces du Net (Keep-Active, HTTP1/0, UnsafeHeaderParsing, etc.). Mon erreur était de penser que le souci venait du client, car, après une traçabilité, le serveur envoyait bien le contenu attendu (un fichier html).
    Le POST fonctionnait et non le GET, bref de quoi s'arracher les cheveux... Alors que le souci n'était pas du client, mais bien de la partie serveur, comme l'indique le message d'erreur généré par l'exception.
    Le serveur ne renvoi pas dans l'entête HTTP (headers) le bon contenu ou un contenu attendu par le traitement du client. C'est la raison aussi que sur certains forum, des utilisateurs indiquent que cela fonctionne avec tel site et pas un autre.

    Bref, dans mon cas, la solution a été de faire en sorte que le serveur retour un entête adapté du genre :

    HTTP/1.1 200 OK
    Date: yyyy-MM-dd
    Server: hostname
    Content-Length: taille du contenu
    Content-Type: type mime du contenu, par exemple html
    ligne vide
    ligne vide

    contenu via un tableau de Byte

    L'appel WebRequest.GetResponse() doit dissocier l'entête et le corps du contenu. Le fait que le serveur envoi uniquement le contenu provoque une Exception côté client.

    Cet exemple ne va pas résoudre tous les cas, mais j'espère que cela pourra mettre sur une piste adaptée, ceux qui recherchent une solution.
    Validé sous Visual Studio 2013 et .NET 4.6.1

Discussions similaires

  1. Connexion Java Client au Serveur HTTPS via proxy
    Par devdev2003 dans le forum Services Web
    Réponses: 17
    Dernier message: 20/05/2011, 09h59
  2. [HTTPS] Formulaire via proxy qui renvoie une page blanche
    Par Leobaillard dans le forum Apache
    Réponses: 16
    Dernier message: 17/04/2008, 20h06
  3. C++ Builder 3 GET & POST via Proxy avec Identification
    Par izak52g dans le forum Bibliothèques
    Réponses: 0
    Dernier message: 06/09/2007, 10h11
  4. [connexion via proxy] script de config automatique proxy
    Par marwaza22 dans le forum Réseau
    Réponses: 2
    Dernier message: 27/06/2007, 17h22
  5. [reseaux] SOCKET - Connection via proxy
    Par Julien_ dans le forum Programmation et administration système
    Réponses: 2
    Dernier message: 17/11/2006, 14h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo