web-dev-qa-db-ja.com

改良:500内部サーバーエラー

POSTリクエストをRetrofit経由で送信しようとするたびに、500の内部サーバーエラーが発生します。GETリクエストを送信すると、正しく送信されます。サーバーサイドではすべてが問題ないことを確認しています。私のコードで間違っていますか?

    String ENDPOINT = "http://52.88.40.210";
    //model for request
        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, new Callback<List<FriendLocationModel>>() {
            @Override
            public void success(List<FriendLocationModel> friendLocationModels, Response response) {
                for (FriendLocationModel ff : friendLocationModels) {
                    Log.d("myLogs", "===========Successful==========");
                    Log.d("myLogs", "Id: " + ff.getId());
                    Log.d("myLogs", "Number: " + ff.getNumber());
                    Log.d("myLogs", "GeoLocation: : " + ff.getGeoLocation());
                }
            }

            @Override
            public void failure(RetrofitError error) {
                Log.d("myLogs", "-------ERROR-------");
                Log.d("myLogs", Log.getStackTraceString(error));
            }
        });
    }

リクエストの宣言:

@Headers({
        "Accept: application/json",
        "Content-type: application/json"
})
@POST("/api/geo/getLoc")
public void getFriendsLocation(@Body FriendModel friendModel, Callback<List<FriendLocationModel>> response);

Postmanからの要求と応答の例: enter image description here

8
neustart47

郵便配達ではFriendModelの配列を送信しているようですが、コードでは単一のオブジェクトを送信しています。

送信するオブジェクトを変更するだけで、単一のオブジェクトを送信する代わりに、サーバーが期待するとおりにリストを送信します

    List<FriendModel> friendsList = new ArrayList<FriendModel>();

    FriendModel ff = new FriendModel();
    ff.setFriendNumber("380935275259");
    ff.setId(516);
    ff.setNumber("380936831127");

    friendsList.add(ff);

このシグネチャも変更する必要があります。

public void getFriendsLocation(@Body FriendModel friendModel, Callback<List<FriendLocationModel>> response);

public void getFriendsLocation(@Body List<FriendModel> friendModel, Callback<List<FriendLocationModel>> response);
7
Udi Idan