给定一个 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/