Привет, Пома, Как использовать этот код в качестве сервера? Я хочу скачать страницу encrypted.google.com и отправить в браузер клиента.

аюсь подключиться к HTTPS-серверу через прокси с помощью сокетов. Насколько я знаю, при использовании HTTP-прокси нужно подключить к нему сокет, а затем взаимодействовать с ним, поскольку он является настоящим сервером. С HTTP этот подход работает, но с HTTPS нет. Почему?

Вот простая программа, которая подключается к серверу HTTPS

using System;
using System.Text;
using System.Net.Sockets;
using System.Net.Security;

namespace SslTcpClient
{
    public class SslTcpClient
    {
        public static void Main(string[] args)
        {
            string host = "encrypted.google.com";
            string proxy = "127.0.0.1";//host;
            int proxyPort = 8888;//443;

            // Connect socket
            TcpClient client = new TcpClient(proxy, proxyPort);

            // Wrap in SSL stream
            SslStream sslStream = new SslStream(client.GetStream());
            sslStream.AuthenticateAsClient(host);

            // Send request
            byte[] request = Encoding.UTF8.GetBytes(String.Format("GET https://{0}/  HTTP/1.1\r\nHost: {0}\r\n\r\n", host));
            sslStream.Write(request);
            sslStream.Flush();

            // Read response
            byte[] buffer = new byte[2048];
            int bytes;
            do
            {
                bytes = sslStream.Read(buffer, 0, buffer.Length);
                Console.Write(Encoding.UTF8.GetString(buffer, 0, bytes));
            } while (bytes != 0);

            client.Close();
            Console.ReadKey();
        }
    }
}

Успешно подключается, когдаproxy = host а такжеproxyPort = 443, Но когда я установил их на 127.0.0.1:8888 (прокси-сервер fiddler на localhost), это не сработало. Программа висит наsslStream.AuthenticateAsClient(host); Почему? Fiddler поддерживает HTTPS (браузеры могут подключаться через него).

Постскриптум Нет я не могу использоватьHttpWebRequest в моем случае.

Ответы на вопрос(1)

Ваш ответ на вопрос