Предварительный: Я пишу свой собственный httpclient в Java. Я пытаюсь проанализировать контент разделенного на блоки кодирования.
Вот моя дилемма: Так как я пытаюсь проанализировать разделенное на блоки кодирование передачи http gzip полезной нагрузкой существует соединение ASCII и двоичного файла. Я не могу только взять http resp содержание и преобразовать его в строку и использовать StringUtils, так как двоичные данные могут легко содержать нулевые символы. Таким образом, то, что я должен сделать, является некоторыми основными вещами для парсинга каждого блока и его длины блока (согласно разделенной на блоки transfer/HTTP/1.1 спецификации).
Есть ли любые полезные способы перерыть массивы байтов данных ASCII двоичного файла/части для определенных шаблонов (как a CR
LF
) (вместо просто единственного байта)? Или я должен записать для циклов для этого?
Таким образом, вам в основном нужен ChunkedInputStream
. Google дает достаточно подсказок. Вариант Apache HttpCore довольно лаконичен. Я бы посоветовал вам просто использовать его, а не изобретать своего собственного клиента.
Если вы действительно, действительно хотите реализовать свой собственный стек HTTP-клиентов с нуля, попробуйте поискать в Google "+java +bytestring". Одним из первых результатов, которые я получил, был этот класс ByteString, который, похоже, обеспечивает функциональность, о которой вы спрашиваете.
Но я думаю, что подход @BalusC лучше.