java - 不使用第 3 方库(核心 Java)从 HTTP 请求字符串解析 HTTP header 的最佳方法

标签 java http

给定一个 HTTP 请求 header ,有没有人有建议或知道现有代码来正确解析 header ?我试图只用 Core Java 来做这件事,没有第三方库

编辑:

尝试从此字符串中查找关键字段,例如:

GET/HTTP/1.1User-Agent: curl/7.19.7 (x86_64-pc-linux-gnu) libcurl/7.19.7 OpenSSL/0.9.8k zlib/1.2.3.3 libidn/1.15Host: localhost:9000Accept: /

想解析出Method和方法

最佳答案

我写了一个库,RawHTTP ,其唯一目的是解析 HTTP 消息(请求和响应)。

如果您不想使用库,您可以将源代码复制到您自己的代码库中,从以下开始:https://github.com/renatoathaydes/rawhttp/blob/a6588b116a4008e5b5840d4eb66374c0357b726d/rawhttp-core/src/main/java/com/athaydes/rawhttp/core/RawHttp.java#L52

这会将 HTTP 消息的行一直拆分到元数据部分的末尾(起始行 + header )。

有了手边的元数据行列表,您就可以调用 parseHeaders 方法,它将为您创建 header 。您可以轻松地调整它以仅返回 Map<String, List<String>>以避免还必须导入 header 类。

就是说... RawHTTP 没有依赖项,所以我会直接使用它 :) 但由您决定。

关于java - 不使用第 3 方库(核心 Java)从 HTTP 请求字符串解析 HTTP header 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11989651/

相关文章:

java - 从 JTable 行设置变量的字符串

java - Scanner 和 While 循环检查数组列表的问题

java - 使用 JAVA 的异或门

java - scala/Serializable NoClassDefFoundError (RMI w/Scala)

php - 安装 SSL 证书后 Wordpress 网站无法正常工作

java - 如何让计数器在 while 循环中工作?

flutter | Dart : Target of URI does not exist

javascript - 如何将服务的 $http.get() 返回的值分配给 Controller 中的变量?

rest - 为什么 GET + DELETE 不是幂等的?

java - HTTP 帖子正文虚假丢失(HttpURLConnection 和 Jetty)