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

调用指定Feign接口仅返回HTTP状态码,方法返回类型该如何定义?

Feign客户端仅获取HTTP状态码的返回类型选择

如果你只想获取接口调用的HTTP状态码,有两种常用且严谨的返回类型可选:

1. 使用ResponseEntity<Void>

这是Spring生态下最常用的方案,ResponseEntity会封装HTTP响应的状态码、头信息等元数据,Void类型明确表示不需要解析响应体,完全匹配你只获取状态码的需求。修改后的代码如下:

@FeignClient(name = "abc_abc", url = "${abc.host}")
public interface ValidateClient {

    @PostMapping(path = "/api/abc/validate",
            consumes = "application/json",
            produces = "application/json")
    ResponseEntity<Void> validateResponse(@RequestHeader HttpHeaders httpHeaders, @RequestParam Map<String, Object> params,
                                          @RequestBody String request);
}

调用后,你可以通过responseEntity.getStatusCodeValue()获取整数格式的状态码,或通过responseEntity.getStatusCode()获取枚举类型的状态码。

2. 使用Feign原生Response

如果想直接使用Feign的原生API,可返回feign.Response,它同样包含状态码、响应头信息,你可以忽略响应体部分。代码示例:

import feign.Response;

@FeignClient(name = "abc_abc", url = "${abc.host}")
public interface ValidateClient {

    @PostMapping(path = "/api/abc/validate",
            consumes = "application/json",
            produces = "application/json")
    Response validateResponse(@RequestHeader HttpHeaders httpHeaders, @RequestParam Map<String, Object> params,
                              @RequestBody String request);
}

调用后通过response.status()即可获取状态码。

注意:不建议直接返回Integer,因为Feign会默认尝试将响应体解析为Integer类型,若接口响应体不是纯数字格式,会抛出解析异常,这种方式不够严谨。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 21:48:21