2010-05-27 5 views
1

Может ли кто-нибудь дать мне понять, как разбирать HTTP-протокол с помощью scala 2.8 packrat-parsing?Анализ пакетов Pack HTTP

мне нужно разобрать прикрепленную образцовой HTTP Response в

  • ResponseStatusCode: Int
  • Заголовки: Список [(String, String)]
  • Body: String, Array [Byte], CharBuffer или независимо от того,

Краткосрочное использование Packrat-Parser очень ценится. Благодаря!

HTTP/1.1·200·OK(CR)(LF) 
Date:·Thu,·27·May·2010·12:18:48·GMT(CR)(LF) 
Server:·Apache(CR)(LF) 
Vary:·Accept-Encoding,User-Agent(CR)(LF) 
Connection:·close(CR)(LF) 
Transfer-Encoding:·chunked(CR)(LF) 
Content-Type:·text/html;·charset=utf-8(CR)(LF) 
(CR)(LF) 
... Hello World .. 
+0

Я думаю, что с помощью парсера-комбинатора для этого используется кувалда, чтобы убить блоху. Ну, может быть, кувалдой, чтобы убить таракана. Обратите также внимание на то, что часть packrat состоит в том, чтобы сделать парсер более эффективным, когда он отступает. Оффлайн, я не вижу декодирования ответов HTTP, как требующих какого-либо возврата, так что аспект пакетности является спорным. –

+0

ОК, но какое должно быть элегантное, но эффективное решение для анализа произвольных стандартных HTTP-ответов? – hotzen

+1

Ваш интерес к опыту написания декодера для ответов HTTP? Или вы просто хотите их уничтожить? Если это последний, я бы просто использовал одну из готовых библиотек. Apache HttpComponents (http://hc.apache.org/) будет очевидным предложением. –

ответ

2
+0

Я думал, что существуют большие различия между парсерами старой школы и новыми парсерами пакетов. – hotzen

+0

@hotzen: библиотека анализатора комбинаторов Scala 2.8 добавляет анализ PEG и может анализировать результаты синтаксического анализа для потенциального повторного использования при обратном отслеживании. Я не вижу ни одного из них, как относящегося к анализу ответов HTTP. Возможно, я ошибаюсь. –

+0

Вы абсолютно правы, но поскольку это текущая работа по синтаксическому анализу, я решил, что мог бы взглянуть на упаковщики ... – hotzen

Смежные вопросы