我正在使用Retrofit進行Spring Boot服務的發佈請求,但始終稱爲失敗回調方法。這是我的簡化代碼:將POST請求改裝爲Spring Boot服務
春季啓動服務(控制器):
@RestController
public class ServController {
@Autowired
private UserRepository userRepository;
@RequestMapping(value = "/user", method = RequestMethod.POST)
public Boolean signUpUser(@RequestBody User user)
{
return true;
}
}
我的客戶端接口:
public interface ChainApi {
public static final String USER_PATH = "/user";
@POST(USER_PATH)
public void signUpUser(@Body User user, Callback<Boolean> callback);
}
異步POST請求:
User user = new User();
user.setId(12);
user.setName(nameEtx.getText().toString());
user.setEmail(emailEtx.getText().toString());
user.setPassword(passwordEtx.getText().toString());
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(Constant.URL_LOCALHOST)
.build();
ChainApi service = restAdapter.create(ChainApi.class);
service.signUpUser(user, new Callback<Boolean>() {
@Override
public void success(Boolean aBoolean, Response response) {
Log.i(TAG, "Succesfull");
@Override
public void failure(RetrofitError error) {
Log.i(TAG, "Error " + error.getMessage()); // 400 Bad Request
}
});
這是我的用戶class(POJO):
@JsonIgnoreProperties(value = { "additionalProperties"})
public class User {
@JsonProperty("id")
private Integer id;
@JsonProperty("name")
private String name;
@JsonProperty("password")
private String password;
@JsonProperty("email")
private String email;
@JsonIgnore
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
// methods
}
注意:我在Android中進行開發,並且在從Postman發出手動POST請求時,我得到200 OK。 此外,我得到logcat的消息:400錯誤的請求
後你得到 – 2014-10-18 14:07:58
更新我的帖子在最後一部分 – kelvincer 2014-10-18 21:11:57
錯誤聽起來像是你的服務器不喜歡從你的要求的東西,也許有東西在裏面失蹤。看看服務器上的日誌,這些可能會指引你朝着正確的方向前進。 – 2014-10-18 23:39:31