【问题标题】:How to print/get payload of incoming HTTP POST request in Java (with Sockets)如何在 Java 中打印/获取传入 HTTP POST 请求的有效负载(使用套接字)
【发布时间】:2015-01-12 06:20:18
【问题描述】:

对于安全软件课程,我创建了一个小型中间人代理。 我已经到了截获关键信息的地步。此消息是一个 HTTP POST 请求,要捕获的标志位于有效负载中。

例如

POST http://someurl.com/index.php HTTP/1.1
Origin: null
User-Agent: Mozilla/5.0 (Unknown; Linux i686) AppleWebKit/534.34 (KHTML, like Gecko) PhantomJS/1.9.7 Safari/534.34
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Content-Length: 37
Content-Type: application/x-www-form-urlencoded
Connection: Keep-Alive
Accept-Encoding: gzip
Accept-Language: en-US, *
Host: someurl.com

所以负载,一个 37 字节的标志,显然在那里,但是当我打印它时,什么都没有出来(如你所见)。

知道我正在使用 Java.net 套接字(即有一个输入流可用于任何操作),您将使用什么代码来打印有效负载。我继续打印来自流的任何内容,即使是 null,我仍然没有得到任何输出。

我已经搜索了一段时间,但找不到任何有用的东西。可能有一个我似乎想不出的非常简单的解决方案。

谢谢

【问题讨论】:

    标签: java sockets http http-post inputstream


    【解决方案1】:

    已解决。我做错的是读取一行而不是读取 37 个字节。由于这是一个连接保持活动流,因此该流永远不会关闭,因此“readline”方法一直在等待。

    https://community.oracle.com/thread/1691291中所述

    【讨论】:

    • 感谢提醒! (我是新手)显然我只能在两天后接受我自己的答案......
    猜你喜欢
    • 2013-01-09
    • 2013-04-17
    • 2013-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-12
    • 2020-04-28
    相关资源
    最近更新 更多