Autor Beitrag
Malcolm
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Do 01.11.12 12:35 
Hi,

ich will mich mit einem SOCKS5-Proxy zu einer Seite verbinden. Das "Problem" dabei ist, dass die Seite SSL-gesichert ist.

Eine normale Verbindung zu einer x-beliebigen Seite, habe ich mit meiner SOCKS5-Klasse schon erfolgreich hergestellt. Der Clou hierbei ist jetzt die SSL-Verbindung.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
s.Connect("www.seite.tld"80); // s ist ein Socket
NetworkStream ns = new NetworkStream(s);
SslStream sl = new SslStream(ns, false);

sl.AuthenticateAsClient("www.seite.tld");
string httpReq = "GET /wayne HTTP/1.1\r\nHost: www.seite.tld\r\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; rv:16.0) Gecko/20100101 Firefox/16.0\r\nConnection: close\r\n\r\n";

sl.Write(Encoding.ASCII.GetBytes(httpReq));
sl.Flush();

string response = ReadMessage(sl);


Hier die "ReadMessage"-Methode von MSDN.

ausblenden C#-Quelltext
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:
static string ReadMessage(SslStream sslStream)
    {
        // Read the  message sent by the server.
        // The end of the message is signaled using the
        // "<EOF>" marker.
        byte[] buffer = new byte[2048];
        StringBuilder messageData = new StringBuilder();
        int bytes = -1;
        do
        {
            bytes = sslStream.Read(buffer, 0, buffer.Length);

            // Use Decoder class to convert from bytes to UTF8
            // in case a character spans two buffers.
            Decoder decoder = Encoding.UTF8.GetDecoder();
            char[] chars = new char[decoder.GetCharCount(buffer, 0, bytes)];
            decoder.GetChars(buffer, 0, bytes, chars, 0);
            messageData.Append(chars);
            // Check for EOF.
            if (messageData.ToString().IndexOf("<EOF>") != -1)
            {
                break;
            }
        } while (bytes != 0);

        return messageData.ToString();
    }

Es passiert einfach, nichts. Ich muss die Seite aber mit SSL aufrufen sonst kriege ich immer eine 302 Moved Temporarily Response mit Location auf die gleiche Seite nur mit https:// .. :@

Bitte bitte Hilfe.

Viele Grüße

Moderiert von user profile iconTh69: Code- durch C#-Tags ersetzt