2015-09-28 166 views
4

我有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); 

Exampe从邮差: enter image description here

+1

看来在邮递员你发送一个FriendModel数组,但在你的代码中,你发送一个单一的对象。服务器期望得到什么? –

+0

@UdiI谢谢你的回答,是的,服务器端无法识别单个JSON对象。我可以修改serverside并将其教导为可识别的单个JSON对象,但这不是个好主意。 Becouse,更多请求 - 在服务器端使用更多资源。我需要知道如何通过Retrofit向JSON对象发送请求。 – neustart47

回答

5

看来,在邮递员你发送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