Можно ли отправить HTTP-запрос, используя простое сокетное соединение, и получить ответ без заголовков? - PullRequest
0 голосов
/ 30 ноября 2011

экспертов

Я пытаюсь реализовать загрузчик, который обрабатывает протокол HTTP, я могу отправить запрос HTTP, используя следующий код:

StringBuilder request = new StringBuffer().append("GET ").append(uri.getPath());
if(uri.getQuery() != null)
    request.append('?').append(uri.getQuery());
request.append(" HTTP/1.1\nHost: ").append(uri.getHost()).append("\nAccept: */*\n\n");

// send the request
outputStream.write(request.toString().getBytes("utf-8"));
outputStream.flush();

При получении ответа я будуНеобходимо сохранить тело ответа на диск, и работа выполнена.

Мой вопрос: есть ли какие-либо HTTP-заголовки, которые я могу установить для запроса, который заставит сервер отправлять ответ без HTTP-заголовков (только тело)?

Причина, по которой я задаю этот вопрос, заключается в том, что если это возможно, мне не нужно пропускать заголовки HTTP вручную при чтении ответа, я могу напрямую начать читать необработанные байтыиз входного потока.все, что мне нужно, это тело ответа, в этом случае HTTP-заголовки не имеют большого значения.

Ответы [ 3 ]

1 голос
/ 30 ноября 2011

то есть протокол HTTP работает. Вы всегда получаете заголовки в ответ. Я уверен, что у Java есть готовый к использованию http-клиент. Я предлагаю вам использовать его.

1 голос
/ 30 ноября 2011

Нет, вы всегда получите заголовок обратно. И вам придется анализировать его, так как ресурс, который вы пытаетесь получить, может иметь разные кодировки и / или несколько частей.

С другой стороны, это уже сделано для вас такими инструментами, как wget(1). Вы можете либо просто использовать их, либо заглянуть в источник, чтобы выяснить, что вам нужно сделать программно.

1 голос
/ 30 ноября 2011

Если вы не контролируете сервер, то, вероятно, нет.Если вы это сделаете, то в зависимости от того, что вы используете на стороне сервера, вы можете отправить ответ без заголовков.

Похоже, вы используете Java, и я подозреваю, что есть библиотеки, которые помогут вам извлечь ответне разбирая его самостоятельно.Это было бы лучше, чем пытаться взломать ответ без заголовков.

...