Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Packrat解析HTTP_Http_Parsing_Scala_Scala 2.8_Parser Combinators - Fatal编程技术网

Packrat解析HTTP

Packrat解析HTTP,http,parsing,scala,scala-2.8,parser-combinators,Http,Parsing,Scala,Scala 2.8,Parser Combinators,有人能给我一个关于如何用scala 2.8 packrat解析解析HTTP协议的开始吗 我需要将附加的示例HTTP响应解析为 响应代码:Int 标题:列表[(字符串,字符串)] 正文:字符串,数组[字节],字符缓冲区 或者别的什么 非常感谢Packrat解析器的简短示例用法。谢谢 HTTP/1.1·200·OK(CR)(LF) Date:·Thu,·27·May·2010·12:18:48·GMT(CR)(LF) Server:·Apache(CR)(LF) Vary:·Accept-Enc

有人能给我一个关于如何用scala 2.8 packrat解析解析HTTP协议的开始吗

我需要将附加的示例HTTP响应解析为

  • 响应代码:Int
  • 标题:列表[(字符串,字符串)]
  • 正文:字符串,数组[字节],字符缓冲区 或者别的什么
非常感谢Packrat解析器的简短示例用法。谢谢

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 ..

有很多。我认为使用组合分析器就是用大锤杀死跳蚤。嗯,也许是一把大锤来杀死一只蟑螂。还要注意的是,packrat部分是关于使解析器在回溯时更高效。顺便说一句,我不认为HTTP响应的解码需要任何回溯,因此packrat方面是没有意义的。好吧,但是什么是解析任意符合标准的HTTP响应的优雅而有效的解决方案呢?您对编写HTTP响应解码器的体验感兴趣吗?还是你只想吃掉它们?如果是后者,我只会使用一个现成的库。ApacheHttpComponents()显然是一个建议,我需要一个定制的高效HTTP解析器来处理CPS上下文中的NIO数据块。我的工作稿在:很抱歉评论晚了。非常感谢您对如何正确设计这种解析器的建议。我认为“老派”解析器和新的packrat解析器之间有更大的区别。@hotzen:Scala 2.8 combinator解析器库添加了PEG解析,并可以记忆解析结果,以便在回溯发生时重新使用。我认为这两种方法都与解析HTTP响应无关。也许我错了。你是完全正确的,但由于这是当前需要完成的解析工作,我想我可以看看packrats…@hotzen:我仍然不认为这是一个解析问题。这只是解码无序的键/值对集合的问题。它可以通过解析技术和工具来完成,但我仍然认为这太过分了。由于这不是为了编写解析器而做的事情,所以应该使用现有的库()。