HTTP原始文本POST请求

时间:2017-09-29 06:18:45

标签: java http servlets

我需要计算我的原始HTTP post请求的哈希值,并将其与Java中标题中的签名哈希值进行比较。问题是,我尝试了多种方法,但我无法提取发送的确切POST请求。随附的是:

enter image description here

我需要完全相同的字符串(以及所有%和其他符号),因为即使单个空格差异也会生成错误的哈希值。我们可以在这里使用自定义过滤器,如果是,那么究竟是什么?

1 个答案:

答案 0 :(得分:1)

您使用的是servlet还是球衣?在servlet中,您可以获取请求的原始流并转换为字符串。 HttpServletRequest#getInputStream()getReader

e.g

InputStream body = request.getInputStream();
// ..

编辑:添加我拥有的代码,该代码有效。

@Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        InputStream is = request.getInputStream();
        //this convertStreamToString is my internal method. You can have any your own conversion API
        System.out.println("----"+convertStreamToString(is)); 
        processRequest(request, response);
    }