代码之家  ›  专栏  ›  技术社区  ›  Alby

在java中解析来自原始http请求的表单参数

  •  0
  • Alby  · 技术社区  · 10 年前

    我试图从原始HTTP请求消息(如下面的消息)中提取一些信息,并将它们存储到 org.apache.http.message.BasicHttpRequest ( https://hc.apache.org/httpcomponents-core-ga/httpcore/apidocs/index.html )类。

    我能够雇佣 org.apache.http.message.BasicLine解析器 类及其方法 parseHeader(字符串值,LineParser解析器) 处理(解析+存储)头,但我不知道如何处理随表单传递的参数。

    POST https://gist.github.com:443/gists HTTP/1.1
    Host: gist.github.com
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: en,fr;q=0.8,it-it;q=0.6,it;q=0.4,en-us;q=0.2
    Accept-Encoding: gzip, deflate
    DNT: 1
    Referer: https://gist.github.com/
    Connection: keep-alive
    Content-Type: multipart/form-data; boundary=-------------------------10314229756379422411656878663
    Content-Length: 1242
    
    -----------------------------10314229756379422411656878663
    Content-Disposition: form-data; name="parameter_name"
    
    parameter_value
    

    你知道一个实用程序可以解析从上面的标题开始的内容吗(即第一个空行之后)?我感兴趣的是所有的配对<“parameter_name”、“parameter_value”>存在于请求主体中。

    我已经读过类似的答案/问题,例如 Parsing raw HTTP Request 但我在表单数据组件上找不到任何有用的东西

    提前感谢您的帮助和时间

    1 回复  |  直到 7 年前
        1
  •  0
  •   ok2c    10 年前

    您看到的是MIME编码的内容体。HttpClient是内容不可知的,因此不提供解析此类内容的方法。但是,可以使用 Apache Mime4J 这样做。