2015-09-28 204 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