gpt4 book ai didi

java - android中retrofit2 api请求的响应主体始终为空

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

我正在使用android studio开发一个android应用程序,并且我有一个rest api,它是我用spring开发的。每次我使用改造从服务器检索某些内容时,我都会得到 null body。即使我的服务器发送数据。

我尝试过 ScalarsConverterFactory 和 GsonConverterFactory,我也尝试过将调用类型更改为 String、ResponseBody 和 JsonObject

我在这里打电话:

Retrofit retrofit = new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())
.baseUrl("my_url")
.build();

ServerService service = retrofit.create(ServerService.class);
Call<List<String>> call = service.getUserAlbums("addcookie");
Response<List<String>> response = call.execute();

服务器服务.java

@GET("/cmu/getUserAlbums")
Call<List<String>> getUserAlbums(@Header("Cookie") String cookie);

这是服务器中的代码

@RequestMapping(value = "/getUserAlbums", method = RequestMethod.GET)
@ResponseStatus(HttpStatus.FOUND)
public List<String> getUserAlbums() {
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
User user = userService.getUserByUsername(auth.getName());
return userService.getUserByUsername(user.getUsername()).getAlbums();

}

我希望得到一个字符串形式的列表,我得到了 HTTP 代码 302,在我的控制台中我可以看到服务器返回了列表,但我无法在 Android 上接收。

最佳答案

我解决了这个问题,基本上,如果代码在 200 - 299 之间,改造就会认为响应成功,因此当它返回 302 时,我正在寻找的响应正文位于 .errorBody() 中。

关于java - android中retrofit2 api请求的响应主体始终为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55930182/

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