[英]Retrofit: sending POST request
這是我的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)
我的要求有什么問題?
我想你在方法聲明中忘了@FormUrlEncoded
注釋。 它應該是這樣的:
@FormUrlEncoded
@POST("/api/geo/getLoc")
public void getFriendsLocation(@Field("Id") int Id, @Field("Number") String Number, @Field("FriendNumber") String FriendNumber, Callback<JsonElement> response);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.