2016-07-20 12 views
1

Ich benutze Retrofit 2.1 und wenn ich ein Objekt auf meinem Server posten, gibt es mir Interner Serverfehler mit Statuscode = 500, aber ich versuche, von meinem Backend zu posten, funktioniert es Wie ein Zauber, bin ich mir sicher, dass das nicht das Problem des Servers ist.Retrofit 2.1 Interner Server Fehler mit Post

Zweifellos soll ich Retrofit als Singleton verwenden:

//return api if not null 
HereApi getApi(){ 
    if (api == null) { 
     api = getRetrofit().create(HereApi.class); 
    } 
    return api; 
} 

//returns restadapter if not null 
Retrofit getRetrofit(){ 

    if (retrofit == null) { 
     retrofit = new Retrofit.Builder() 
       .baseUrl("my endpoint") 
       .addConverterFactory(GsonConverterFactory.create()) 
       .build(); 
    } 

    return retrofit; 
} 

und diese Methode, die ich hier schreiben Objekt:

void createHere(Here here){ 

    List<Here> list = new ArrayList<>(); 
    list.add(here); 
    Call<List<Here>> call = getApi().createHere(list); 

    call.enqueue(new Callback<List<Here>>() { 
     @Override 
     public void onResponse(Call<List<Here>> call, Response<List<Here>> response) { 
      Log.i(TAG, "onResponse: "+response.message()); 
     } 

     @Override 
     public void onFailure(Call<List<Here>> call, Throwable t) { 

     } 
    }); 
} 

Ich habe versucht, eine Liste mit einzelnem Objekt zu schreiben innen und zu schreiben ein Objekt allein, aber immer noch Statuscode ist 500; * (

Dies ist meine API Service-Schnittstelle:

public interface HereApi{ 

@GET("/lessons/") 
Call<List<Lesson>> getLesson(@QueryMap Map<String,String> map); 

@Headers({ 
     "Content-Type: application/json", 
     "Vary: Accept" 
}) 
@POST("/heres/") 
Call<List<Here>> createHere(@Body List<Here> list); 

@GET("/heres/") 
Call<List<Here>> getHeres(@QueryMap Map<String,String> map); 

}

Ich habe geschrieben Backend in Django + Django-rest-Rahmen:

all Here objects as a list

Wenn ich versuche, von diesem Post, es funktioniert einfach:

Posting from rest-framework UI

Ich brauche deine Hilfe Jungs, ich habe nur einen Tag, um dieses Projekt zu vervollständigen !!!

Antwort

1

Hallo ich denke, es gibt ein Datetime-Konversationsproblem. Verwenden Sie Jackson atating, um das Datetime-Feld ordnungsgemäß zu serialisieren.

+0

Vielen Dank! du hast mein Leben gerettet! (͡ ° ͜ʖ ͡ °) –