改装:500内部服务器错误
问题描述:
我有500个内部服务器错误,每当我尝试通过改装发送POST请求时。当我发送GET请求时,它发送正确。我敢肯定,与服务器方面everyting是好的。我的代码有什么问题?改装:500内部服务器错误
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);
答
看来,在邮递员你发送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);
+1
谢谢,我正在寻找最后几天回答这个问题。 谢谢。 – neustart47
看来在邮递员你发送一个FriendModel数组,但在你的代码中,你发送一个单一的对象。服务器期望得到什么? –
@UdiI谢谢你的回答,是的,服务器端无法识别单个JSON对象。我可以修改serverside并将其教导为可识别的单个JSON对象,但这不是个好主意。 Becouse,更多请求 - 在服务器端使用更多资源。我需要知道如何通过Retrofit向JSON对象发送请求。 – neustart47