Android AppでAPIを呼び出すためにRetrofit 2を使用しています。 POSTを使用してAPIを使用していますが、クエリタグに文字列パラメータがあります。私はdocのようなことをすべて行い、テストページでこのAPIを正常にテストします。ここでレスポンスコード400不正なリクエストクエリタグのJson String paramを使用してください。Retrofit 2 Android
@POST("https://stackoverflow.com/users/{userId}/get_list_friends")
Call<GetListFriendDataResponse> getListFriend(@Path("userId") int userId, @Query("list") String list, @Query("page") int page, @Query("size") int size, @Header("hash") String hash);
は私の実装です:
ArrayList<String> id = new ArrayList<>();
id.add("4782947293");
JSONArray jsonArray = new JSONArray(id);
JSONObject jsonObject = new JSONObject();
try {
jsonObject.put("list", jsonArray);
} catch (JSONException e) {
e.printStackTrace();
}
String list = jsonObject.toString();
Log.e(TAG, "list: " + list);
apiInterface.getListFriend(21, list, 1,1,"AHHIGHTJGI").enqueue(new Callback<GetListFriendDataResponse>() {
@Override
public void onResponse(Call<GetListFriendDataResponse> call, Response<GetListFriendDataResponse> response) {
Log.e(TAG, " response code: "+ response.code());
}
@Override
public void onFailure(Call<GetListFriendDataResponse> call, Throwable t) {
}
});
私は常に応答コードを取得する:問題は、私はここで改修2. を使用する方法が私のインターフェイスではないので、私は正しく、別のAPIを実行することができます400このAPIを使用する場合 私は "list" varに注目しています。 "list"はJSONテキストですが、Retrofit 2で使用できるJSONObjectからStringを取得するには "jSon.toString()"メソッドが正しいかどうか疑問です。List param form is:{"list":["12332" ]}。
私を助けてください!
あなたが直面している問題は何ですか?エラーがある場合は、ログを投稿してください –
申し訳ありません。私は私の質問を更新しました。 plsは質問の最後を読んでいます。 –
は、それが最初のコードブロックのあなたの「addFriendToLeaderboard」インターフェイス – adafrwefsefr