【问题标题】:How to parse HTTP in java asynchronously (http client maybe)如何在java中异步解析HTTP(可能是http客户端)
【发布时间】:2012-03-17 03:58:07
【问题描述】:

我已经阅读了几个 stackoverflow 问题,包括

How to parse an HTTP Request in Java?

它指向 apache 上的 httpcomponents,看起来很有希望,但是当你异步接收字节时,你不会总是得到整个请求,所以我需要一些我可以继续调用的东西

requestWriter.fillBuffer 看起来他们有这个,但现在似乎不存在

http://hc.apache.org/httpcomponents-core-ga/httpcore/apidocs/org/apache/http/impl/io/HttpRequestParser.html

然后我需要该函数的返回值来告诉我 http 请求的解析已完成(完成意味着它根据 ContentLength 标头和其他所有内容将正文的字节填充在某处)

任何人在网络上都有这样的例子。我一直想这样做并搜索,但最终崩溃并决定问。

【问题讨论】:

    标签: java http httpclient


    【解决方案1】:
    【解决方案2】:

    我从未尝试过使用 apache 的东西。

    看 netty 可能会更好 - http://www.jboss.org/netty

    具体来说,他们给出的构建异步 http 客户端的示例:http://docs.jboss.org/netty/3.2/xref/org/jboss/netty/example/http/snoop/package-summary.html

    您会注意到它们内置了分块处理。

    或者可能是在此基础上构建的 HTTP 客户端库之一: http://www.jboss.org/netty/related-projects

    如果你被锁定在使用 apache 的 http 客户端,请告诉我,我会删除这篇文章。

    编辑添加:请注意,他们的主站点现在位于 http://netty.io,但响应速度通常很慢,或者根本没有响应,就像我发布此内容时的情况一样)

    【讨论】:

      【解决方案3】:

      你看过async-http-client 吗?看起来很有希望。我认为它不适用于您开箱即用,但我认为这是一个很好的起点。

      【讨论】:

      • 不幸的是,我最终看到了..他们搬家了。他们不做http解析。他们依靠 netty、grizzly 和提供者进行解析,然后将提供者的 HttpResponse 转换为他们自己的 :( :( 所以这根本没有很好的工作。
      猜你喜欢
      • 1970-01-01
      • 2019-01-25
      • 2017-12-15
      • 2017-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-31
      相关资源
      最近更新 更多