gpt4 book ai didi

java - 在 spring 中进行改造调用时,当状态码不为 200 时,响应正文为 null

转载 作者:行者123 更新时间:2023-12-01 16:30:31 26 4
gpt4 key购买 nike

我在调用外部 api 时使用我的改造客户端。当状态代码为 200 时,我会收到响应代码和响应正文。对于响应中包含错误对象的状态代码非 200 [例如 400],它不会获取和映射响应正文,而外部 API 在非200.在这种情况下,响应正文为空。

这是我的构建器

Retrofit.Builder builder =
new Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(JacksonConverterFactory.create(objectMapper))
.client(httpClient);

Retrofit retrofit = builder.build();

调用时:

Call<ResponseDto> call =
service.listSearch(listRequestDto);

try {
Response<ResponseDto> response = call.execute();
}

当调用为200时,ResponseDto被接收并映射,但当它为非200时,它是null

最佳答案

当您使用 trycatch block 时。您可以在 catch block 中获取错误,然后您可以决定需要做什么。如果发生错误,您将不会得到响应,它会直接转到 catch block 。

所以你的代码看起来像这样

try {
Response<ResponseDto> response = call.execute();
} catch (err) {
// Do what you want to do in case of error.
}

希望这有帮助!

关于java - 在 spring 中进行改造调用时,当状态码不为 200 时,响应正文为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62050666/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com