Парсинг HTTP-заголовков

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

String[] phrases = new String[10];
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

Этот конкретный NPE можно избежать, если порядок сравнения отменяется ; а именно, использовать .equals для гарантированного непустого объекта.

Все элементы внутри массива инициализируются их общим начальным значением ; для любого типа массива объектов, это означает, что все элементы null.

Вы должны инициализировать элементы в массиве перед доступом или разыменованием их.

String[] phrases = new String[] {"The bird", "A bird", "My bird", "Bird"};
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

18
задан Chuck Callebs 8 March 2016 в 20:55
поделиться

3 ответа

Можно получить пары имя/значение путем поиска новой строки новой строки или более конкретно \r\n\r\n (после этого тело сообщения запустится).

Затем можно просто разделить список & и затем разделение каждая из тех возвращаемых строк между = для пар имя/значение.

Посмотрите RFC .

HTTP 1.1
20
ответ дан 30 November 2019 в 08:27
поделиться

После того как у Вас есть Довольная Длина в заголовке, Вы знаете, что сумма байтов читается прямо после пустой строки. Если, по какой-либо причине (ДОБИРАЮТСЯ или POST) Довольная Длина не находится в заголовке, это означает, что нет ничего для чтения после пустой строки (crlf).

4
ответ дан 30 November 2019 в 08:27
поделиться

Необходимо продолжать анализировать поток как заголовки, пока Вы не видите пустой строки. Остальное - данные POST.

необходимо записать немного синтаксического анализатора для данных сообщения. Можно использовать библиотечные подпрограммы C, чтобы сделать что-то быстрое и грязное, как индекс, strtok, и sscanf. Если Вы имеете пространство для него в Вашем определении "маленьких", Вы могли бы сделать что-то более тщательно продуманное с библиотекой регулярных выражений, или даже с гибким проводом и бизоном.

, По крайней мере, я думаю, что этот вид отвечает на Ваш вопрос.

2
ответ дан 30 November 2019 в 08:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: