这是我的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代码。 –