這是我的POST請求的聲明:改造:發送POST請求
@POST("/api/geo/getLoc")
public void getFriendsLocation(@Field("Id") int Id, @Field("Number") String Number, @Field("FriendNumber") String FriendNumber, Callback<JsonElement> response);
這是我嘗試發送和處理此請求:
String ENDPOINT = "http://52.88.**.***";
FriendModel ff = new FriendModel();
ff.setFriendNumber("380935275259");
ff.setId(516);
ff.setNumber("380936831127");
RestAdapter adapter = new RestAdapter.Builder()
.setEndpoint(ENDPOINT)
.build();
WayfAPI api = adapter.create(WayfAPI.class);
api.getFriendsLocation(ff.getId(), ff.getNumber(), ff.getFriendNumber(), new Callback<JsonElement>() {
@Override
public void success(JsonElement jsonElement, Response response) {
String strObj = jsonElement.toString();
}
@Override
public void failure(RetrofitError error) {
}
});
錯誤:
retrofit.RetrofitError: WayfAPI.getFriendsLocation: @Field parameters can only be used with form encoding. (parameter #1)
我的要求有什麼問題?
非常奇怪的是,諸如朋友的撤回位置的方法被標記爲POST而不是GET。你確定服務器正在考慮這種方法作爲POST? –
@Hasslarn我知道這個方法的名稱有點不正確,但我確定那個POST方法 – neustart47
你檢查過失敗方法是否被調用?這可能會爲您提供錯誤信息,例如來自服務器的HTTP代碼。 –