You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring框架中RestTemplate发起接口请求返回的响应始终为null

RestTemplate调用第三方接口返回null排查方案
  • 第一步:排查自定义RestTemplate配置
    你注入的是名为NewsApi的自定义RestTemplate实例,优先检查该实例的配置是否存在异常:
    • 是否配置了自定义ResponseErrorHandler,在遇到非2xx状态码时直接吞掉异常、返回null
    • 是否移除了默认的StringHttpMessageConverter,导致String类型的响应无法正常序列化
  • 第二步:获取完整响应上下文
    将getForObject替换为getForEntity,拿到完整的响应状态码、头信息、响应体,确认请求的实际执行结果:
ResponseEntity<String> response = restTemplate.getForEntity(uri, String.class);
System.out.println("响应状态码:" + response.getStatusCode());
System.out.println("响应头:" + response.getHeaders());
System.out.println("响应体:" + response.getBody());

若状态码为3xx重定向,说明默认RestTemplate未开启自动跟随重定向,浏览器访问时会自动跳转所以能拿到结果,RestTemplate需要手动配置开启重定向支持

  • 第三步:检查请求头差异
    第三方接口通常会校验请求头参数,浏览器直接访问时会自动携带User-Agent、Accept等标准头,RestTemplate默认请求头可能被接口拦截返回空结果,可手动模拟浏览器请求头调用测试:
HttpHeaders headers = new HttpHeaders();
headers.set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36");
headers.set("Accept", "*/*");
HttpEntity<Void> requestEntity = new HttpEntity<>(headers);
ResponseEntity<String> response = restTemplate.exchange(uri, HttpMethod.GET, requestEntity, String.class);
  • 第四步:排查SSL/代理问题
    • 若接口为HTTPS协议,确认JDK信任库中是否包含该站点的SSL证书,可临时使用关闭SSL校验的RestTemplate测试验证
    • 确认RestTemplate是否配置了错误的代理,导致请求被拦截、无响应返回
  • 第五步:添加请求拦截器打印全量日志
    给RestTemplate添加拦截器,打印请求的全量参数、响应的全量数据,确认请求链路是否存在异常:
restTemplate.setInterceptors(Collections.singletonList((request, body, execution) -> {
    System.out.println("请求地址:" + request.getURI());
    System.out.println("请求方法:" + request.getMethod());
    System.out.println("请求头:" + request.getHeaders());
    ClientHttpResponse response = execution.execute(request, body);
    System.out.println("响应状态码:" + response.getStatusCode());
    System.out.println("响应头:" + response.getHeaders());
    return response;
}));

内容的提问来源于stack exchange,提问作者Manas Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 05:36:02