Хотя ваш запрос похож на HTTP, это не так.Строка, заканчивающаяся HTTP в соответствии со стандартом, - \r\n
, а не простая \n
, как в случае println
Если использовать правильную строку, заканчивающуюся во всех местах (то есть для каждой строки с содержимым, но также и для «пустой» строки, которая заканчивает заголовок запроса), она будет работать также с www.httpbin.org
.
HTTP /1.1 Версия HTTP 505 не поддерживается
Почему этот запутанный ответ с сервера?Поскольку в вашем запросе нет правильного разделителя между заголовком HTTP и (пустым) телом HTTP, предполагается, что это запрос HTTP 0.9.Для давно устаревшего протокола HTTP 0.9 не требовалась пустая строка, состоящая только из \r\n
в качестве заголовка конца запроса, поскольку в HTTP 0.9 не было таких вещей, как заголовок и тело.
Я создаю простой HTTP-клиент.
Пожалуйста, не стоит недооценивать сложность написания правильного HTTP-клиента.Например, код, который вы указали в качестве основы для своего собственного клиента, не только использовал неверный конец строки для запроса, но и утверждал, что поддерживает HTTP / 1.1, не имея возможности обрабатывать кодирование тела с частичной передачей.
И, возможно, вам следует пропустить другой код на этом сайте, если вы действительно хотите изучить протоколы.По крайней мере, Тонкий SMTP-клиент также использует сломанную реализацию протокола.