Как я должен обрабатывать поиск по байтовым массивам в Java? - PullRequest
1 голос
/ 02 мая 2010

Предварительно: я пишу свой собственный httpclient на Java. Я пытаюсь разобрать содержимое кодированной части.

Вот моя дилемма: поскольку я пытаюсь разобрать кодированную кодировку http-передачи с полезной нагрузкой gzip, существует сочетание ascii и двоичного кода. Я не могу просто взять содержимое http resp, преобразовать его в строку и использовать StringUtils, поскольку двоичные данные могут легко содержать ноль символов. Так что мне нужно сделать несколько простых вещей для разбора каждого чанка и его длины (в соответствии со спецификацией chunked Transfer / HTTP / 1.1).

Существуют ли какие-либо полезные способы поиска в байтовых массивах двоичных данных / данных ascii для определенных шаблонов (например, CR LF) (вместо одного байта)? Или я должен написать циклы for для этого?

Ответы [ 2 ]

2 голосов
/ 02 мая 2010

Таким образом, вам в основном нужен ChunkedInputStream. Google дает достаточно подсказок. Вариант Apache HttpCore довольно лаконичен. Я бы посоветовал вам просто использовать его, а не изобретать собственный клиент.

0 голосов
/ 02 мая 2010

Если вы действительно хотите реализовать свой собственный стек HTTP-клиентов с нуля, попробуйте поиск в Google по запросу "+ java + bytestring". Одним из первых попаданий, который я получил, был класс ByteString , который, по-видимому, обеспечивает требуемую функциональность.

Но я думаю, что подход @ BalusC лучше.

...