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.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| s.Connect("www.seite.tld", 80); 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.
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) { byte[] buffer = new byte[2048]; StringBuilder messageData = new StringBuilder(); int bytes = -1; do { bytes = sslStream.Read(buffer, 0, buffer.Length);
Decoder decoder = Encoding.UTF8.GetDecoder(); char[] chars = new char[decoder.GetCharCount(buffer, 0, bytes)]; decoder.GetChars(buffer, 0, bytes, chars, 0); messageData.Append(chars); 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 Th69: Code- durch C#-Tags ersetzt