在使用SpringMVC时,如何看到来自客户端的json?

在使用SpringMVC时,如何看到来自客户端的json?,spring,http,spring-mvc,debugging,Spring,Http,Spring Mvc,Debugging,一个客户端软件正试图访问我的SpringMVCEREST服务器,但每次都得到400(错误请求)响应。我知道我的服务器很好(许多其他客户机都在使用它),但我无法调试客户机应用程序,所以我看不到它正在发送什么 在Spring尝试将JSON转换为实体并失败之前,有没有办法让我查看我收到的JSON?如果我只能在调试时这样做也没关系,我只需要能够支持这个应用程序的创建者 以防万一,以下是spring mvc控制器方法: @Named @RequestMapping(value = "/taskmanage

一个客户端软件正试图访问我的SpringMVCEREST服务器,但每次都得到400(错误请求)响应。我知道我的服务器很好(许多其他客户机都在使用它),但我无法调试客户机应用程序,所以我看不到它正在发送什么

在Spring尝试将JSON转换为实体并失败之前,有没有办法让我查看我收到的JSON?如果我只能在调试时这样做也没关系,我只需要能够支持这个应用程序的创建者

以防万一,以下是spring mvc控制器方法:

@Named
@RequestMapping(value = "/taskmanager/task")
public class TaskManagerTaskRest {
    @RequestMapping(value = "", method = RequestMethod.POST)
    @ResponseBody
    public void createTask(@RequestBody Task task, HttpServletRequest request,
            HttpServletResponse response) throws CalabacinException {
        // This code never gets executed because the Task json is invalid, but I don't know how I could see it.
        ...
        ...
    }
}

您可以创建和使用筛选器实现,并有条件地记录请求的相关部分。您应该使用包装请求。

尝试使用。它将帮助您捕获HTTP请求/响应。您将能够看到您的JSON。

是的,您可以使用fiddler作为反向代理。在我看来,这是最好的解决方案。它不需要任何编程或篡改,只需观察连接是否建立,并查看所需的一切。然后,这个问题不是关于Spring MVC的,而是关于代理请求的一般问题。Fiddler甚至不工作。最后我不得不使用Wireshark()。我选择另一个答案作为有效答案,因为它告诉我如何使用Java代码执行我的请求,我发现这非常有用。我仍然对这个问题投了肯定的票。回答得好。我将能够看到我接收到的内容并记录(或调试),这正是我所要求的,但对于那些尝试这样做的人来说,如果您在过滤器中读取请求正文,您将使用来自请求的InputStream;因此,当Spring尝试再次解析InputStream的json以将其转换为实体时,它总是会失败。如果您包装请求,则不会失败-我已编辑了我的answserI,我选择此答案为有效答案,因为它告诉我如何以编程方式执行所需操作,这是有用的信息。而且小提琴手甚至都不为我工作;我不得不使用Wireshark