Сервер правильный: вы отправляете неверный запрос.К сожалению, в вашем запросе много неправильного, что означает, что не существует простого простого решения.Определенно неправильно:
- Отсутствует разделитель конца заголовка (т. Е. Пустая строка
\r\n
). - Нет заголовка
Host
, который требуется для HTTP/1.1 (как вы используете в своем примере, как выглядит запрос) и не требуется стандартом, но все же требуется большинством серверов с HTTP / 1.0 (как вы используете в своем реальном коде). - Вы не можетепросто укажите в запросе
https://
url и предположите, что он будет волшебным образом использовать https.Вместо этого вам нужно подключиться к серверу, к рукопожатию SSL, а затем отправить правильный HTTP-запрос, который содержит только путь, но не полный URL-адрес.При подключении к прокси-серверу (как вы, похоже, пытаетесь) вам даже нужно добавить некоторый запрос CONNECT и прочитать его ответ, прежде чем обновлять сокет до SSL. - Предполагается, что вы можете использовать порт 80 для HTTPS,но его порт 443 по умолчанию, но при подключении к прокси вы фактически используете один и тот же порт для HTTP и HTTP, хотя обычно это что-то вроде 8000, 8080 или аналогичное.
- И, возможно, больше.
Вкратце: используйте библиотеку HTTP.Если вы не хотите использовать один из них, изучите стандарт HTTP и не просто смотрите на примеры (если вы даже делали это до сих пор).