我正在用android studio开发一个android应用,并且我有一个用spring开发的rest api。每次我使用改造从服务器检索某些内容时,我都会得到空的正文。即使我的服务器发送了数据。
我已经尝试过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();
ServerService.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,在控制台中,我可以看到服务器返回了List,但是我无法在android上接收到。
答案 0 :(得分:1)
我解决了这个问题,如果代码在200-299之间,则改造基本上认为响应成功,因此当返回302时,我正在寻找的响应主体位于.errorBody()中。