簡體   English   中英

改造:發送POST請求

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM