2016-07-20 18 views
1

Retrofit 2.1を使用していて、サーバにオブジェクトを投稿しているときにステータスコード= 500で内部サーバにエラーが発生しましたが、バックエンドから投稿しようとしました。魅力のように、私はこれがサーバーの問題ではないと確信しています。Retrofit 2.1内部サーバのエラー

確かに、私はシングルトンとして改修を使用する必要があります。私はここに投稿

//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; 
} 

と、このメソッドは、オブジェクト:

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) { 

     } 
    }); 
} 

私は内部の単一のオブジェクトのリストを投稿すると、投稿してみました1つのオブジェクトだけですが、ステータスコードは500です*(

これは私のAPIサービスインターフェイスです:

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

}

私はジャンゴ+ Djangoの休止フレームワークでバックエンドを書かれている:

all Here objects as a list

私はこれから投稿しようとすると、それだけで動作します:

Posting from rest-framework UI

私はあなたの助けが必要です、私はこのプロジェクトを完了するために1日しかありません!

答えて

1

こんにちは私はdatetime会話の問題があると思います。 datetimeフィールドを適切にシリアル化するには、attonationをformatingするJacksonを使用します。

+0

ありがとうございます!あなたは私の命を救いました! (͡°͜ʖ͡°) –