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 :

Simple Proxy : Erreur 400


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 32
    Par défaut Simple Proxy : Erreur 400
    Bonjour
    ça fait 4 jours que je m'arrache les cheveux sur ce problème.
    J'essaie de faire un proxy en C# mais impossible de contacter le serveur cible (www.mon***.fr).
    J'ai un gros 400 bad request.
    Je me suis donc dit que c'était surement du à un problème d'header, mais même en l'entrant manuellement, j'ai le même soucis.
    Quelqu'un a une idée ?
    Merci d'avance !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
     
            public Proxy()
            {
                IPEndPoint endpoint = new IPEndPoint(IPAddress.Any, 8081);
                TcpListener listener = new TcpListener(endpoint);
     
                listener.Start();
     
                while (true)
                {
     
                    TcpClient client = listener.AcceptTcpClient();
                    if (client != null)
                    {
     
                        Thread t = new Thread(() =>
                        {
                            /**
                             * Client => Proxy
                             **/
                            NetworkStream nwStream = client.GetStream();
                            List<byte[]> _buffer_send = new List<byte[]>();
                            byte[] buffer = new byte[client.ReceiveBufferSize];
     
                            int rec;
                            string data = "";
     
                            do
                            {
                                // relay message to the server. 
                                rec = nwStream.Read(buffer, 0, client.ReceiveBufferSize);
                                _buffer_send.Add(buffer);
                                data += Encoding.ASCII.GetString(buffer, 0, rec);
                            } while (nwStream.DataAvailable);
                            nwStream.Flush();
     
     
     
                            Console.WriteLine(data.Trim());
                            Console.WriteLine("=================================================");
     
                            /**
                             * Parse Client Header
                             * 
                            **/
                            string hostname = "localhost";
     
                            /**
                             * Proxy => Host
                             **/
     
                            TcpClient _client = new TcpClient(hostname, 443);
                            NetworkStream _nwStream = _client.GetStream();
     
     
                            // relay message to the server. 
                            foreach (byte[] buffer_req in _buffer_send)
                            {
                                _nwStream.Write(buffer_req, 0, buffer_req.Length);
                            }
                            _nwStream.Flush();
     
     
                            /**
                             * Host => Proxy
                             **/
                            List<byte[]> _buffer_back = new List<byte[]>();
                            int _rec;
                            string _data = "";
                            byte[] _buffer = new byte[client.ReceiveBufferSize];
     
                            do
                            {
                                // relay message to the server. 
                                _rec = _nwStream.Read(_buffer, 0, client.ReceiveBufferSize);
                                _buffer_back.Add(_buffer);
                                _data += Encoding.ASCII.GetString(_buffer, 0, _rec);
                            } while (_nwStream.DataAvailable);
                            _nwStream.Flush();
     
     
                            Console.WriteLine(_data.Trim());
                            Console.WriteLine("=================================================");
     
     
                            /**
                             * Proxy => Client
                             **/
                            // relay message to the server.
                            foreach (byte[] buffer_res in _buffer_back)
                            {
                                nwStream.Write(buffer_res, 0, buffer_res.Length);
                            }
                            nwStream.Flush();
     
                            _nwStream.Close();
                            _client.Close();
                            nwStream.Close();
                            client.Close();
                        });
     
                        t.Start();
                        //client.Close();
                        //listener.Stop();
                        //Console.ReadLine();
                    }
     
                }
    }

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 32
    Par défaut
    En fait, il faut utiliser "socket"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur 400 en https avec firefox
    Par bambou dans le forum Apache
    Réponses: 2
    Dernier message: 08/02/2007, 17h07
  2. [AJAX] Requetes HTTPS et ajax = erreur 400?
    Par bambou dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/02/2007, 16h59
  3. Réponses: 1
    Dernier message: 18/11/2006, 11h36
  4. [VB6]affichage d'une feuille modale / message d'erreur 400
    Par getea85 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 26/01/2006, 18h37
  5. [Hibernate] Proxy erreur
    Par DarkNagash dans le forum Hibernate
    Réponses: 2
    Dernier message: 05/08/2005, 11h32

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