当前位置: 首页 > 知识库问答 >
问题:

运行Intellij时查看JSON响应/请求

岳飞航
2023-03-14

服务A发帖:

ResponseEntity<InvoiceResponse> response =
                            restTemplate.postForEntity(invoiceUrl, request, InvoiceResponse.class);

服务B有一个终结点:

 @RequestMapping(value = "/office/{officeId}/invoice", method = RequestMethod.POST)
    @ResponseBody
    public ResponseEntity createInvoice(@RequestBody InvoiceRequest invoiceRequest, @PathVariable("officeId") long officeId) {
...}

但是我得到了一个JWT过滤器,它拦截了请求,并成功地处理了它(我已经通过断点确认了):

public class JwtAuthenticationTokenFilter extends GenericFilterBean {

 @Override
 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,
                    ServletException {
     HttpServletRequest httpRequest = (HttpServletRequest) request;
     String authToken = httpRequest.getHeader(this.tokenHeader);
     String username = jwtTokenUtil.getUsernameFromToken(authToken);
     if (username != null && SecurityContextHolder.getContext().getAuthentication() == null) {
            UserDetails userDetails = this.userDetailsService.loadUserByUsername(username);
           if (jwtTokenUtil.validateToken(authToken, userDetails)) {
                UsernamePasswordAuthenticationToken
                                authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities());
                authentication.setDetails(new WebAuthenticationDetailsSource().buildDetails(httpRequest));
                SecurityContextHolder.getContext().setAuthentication(authentication);
            }
        }
        chain.doFilter(request, response);
    }

如果重要的话,我将在OS X上使用Spring-Boot1.3.5和Java8

更新:

我在服务A中添加了以下per Patrick Bay的建议:

@Bean
public CommonsRequestLoggingFilter requestLoggingFilter() {
    CommonsRequestLoggingFilter loggingFilter = new CommonsRequestLoggingFilter();
    loggingFilter.setIncludeClientInfo(true);
    loggingFilter.setIncludeQueryString(true);
    loggingFilter.setIncludePayload(true);
    return loggingFilter;
}

共有1个答案

皇甫礼骞
2023-03-14

要记录传入的请求,可以使用CommonsRequestLoggingFilter,请参阅此处获得更多详细信息https://ivanursul.com/how-to-log-requests-and-ther-payload-in-spring/。

将此添加到Spring配置中:

@Bean
public CommonsRequestLoggingFilter requestLoggingFilter() {
    CommonsRequestLoggingFilter loggingFilter = new CommonsRequestLoggingFilter();
    loggingFilter.setIncludeClientInfo(true);
    loggingFilter.setIncludeQueryString(true);
    loggingFilter.setIncludePayload(true);
    return loggingFilter;
}

并将其添加到应用程序属性文件:

logging.level.org.springframework.web.filter.CommonsRequestLoggingFilter=DEBUG  
 类似资料:
  • 本文向大家介绍使用Curl命令查看请求响应时间方法,包括了使用Curl命令查看请求响应时间方法的使用技巧和注意事项,需要的朋友参考一下 curl命令查看请求响应时间 -o:把curl 返回的html、js 写到垃圾回收站[ /dev/null] -s:去掉所有状态 -w:按照后面的格式写出rt time_namelookup:DNS 解析域名www.36nu.com的时间 time_commect

  • 我正在开发一个与我编写的RESTful网络服务通信的Android应用程序。在GET方法中使用Volley非常简单,但是我不能把我的手指放在POST方法上。 如何从我的post请求响应中获取字段这是我的响应 我想只有"访问令牌"内容 这是我的密码 请帮帮我?!

  • 我是iOS和Swift的新手,我正在尝试使用AlamoFire3.4.0来做一个web请求。当我的请求成功时,一切都很好。但是,如果我的请求失败,服务器将返回300或更大的状态代码,以及响应体中的一些JSON,其中包含关于请求失败原因的更多信息。例如,我正在与之交谈的API要求对每个请求进行身份验证。如果身份验证由于某种原因失败,我将返回401,响应体中的JSON将为: 我发出此请求的代码如下所示

  • 我可以使用InteliJ Ultimate的探查器查看执行一个方法需要多长时间吗?

  • 网页基础知识 本篇介绍我们平时浏览网页时,浏览器是如何与服务器通讯交流的。目的是为了普及“请求”这一概念,以便更好的介绍Web Analytics 网站分析产品的收数原理。 网页内容是如何呈现在浏览器里的? 我们经常要和网页打交道 -- 当访问一个页面地址时(URL), 浏览器就会为我们呈现一个网页。或许我们对此习以为然。实际上,1个网页所包含的图片,文字,视频,JS代码等各种资源,都是通过您的浏

  • 问题内容: 我想向mysql发送查询并获取一个数组。但是,无论我怎样做,我都无法使它起作用。这是我的代码: 它总是说,。我究竟做错了什么? 问题答案: Flask抛出此异常,因为您的视图未返回任何内容。从您的观点返回响应: 要返回MySQL结果,也许将这些行连接到一个字符串中: 或定义一个模板并返回渲染的模板。 请注意,您确实不希望对参数使用字符串插值, 尤其是 在Web应用程序中。改用SQL参数