Próbuję przekonwertować następującą odpowiedź z Retrofit 2
Modernizacja 2 - ciało zerowa reakcja
{
"errorNumber":4,
"status":0,
"message":"G\u00f6nderilen de\u011ferler kontrol edilmeli",
"validate":[
"Daha \u00f6nceden bu email ile kay\u0131t olunmu\u015f. L\u00fctfen giri\u015f yapmay\u0131 deneyiniz."
]
}
Ale ja zawsze dobrze się null
odpowiedź w onResponse
metody. Tak więc próbowałem spojrzeć na treść błędu odpowiedzi z response.errorBody.string()
. Treść błędu zawiera dokładnie tę samą treść z nieprzetworzoną odpowiedzią.
Oto moja metoda service, Retrofit
obiektów i danych odpowiedzi declerations:
@FormUrlEncoded
@POST("/Register")
@Headers("Content-Type: application/x-www-form-urlencoded")
Call<RegisterResponse> register(
@Field("fullName") String fullName,
@Field("email") String email,
@Field("password") String password);
public class RegisterResponse {
public int status;
public String message;
public int errorNumber;
public List<String> validate;
}
OkHttpClient client = new OkHttpClient();
client.interceptors().add(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Response response = chain.proceed(chain.request());
final String content = UtilityMethods.convertResponseToString(response);
Log.d(TAG, lastCalledMethodName + " - " + content);
return response.newBuilder().body(ResponseBody.create(response.body().contentType(), content)).build();
}
});
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.client(client)
.build();
domainSearchWebServices = retrofit.create(DomainSearchWebServices.class);
mam kontrolę odpowiedzi JSON
z jsonschema2pojo
aby zobaczyć, czy ja modled moją klasę reakcji Wright i wydaje się OK.
Dlaczego Retrofit nie może przekształcić mojej odpowiedzi?
UPDATE
Na razie jako dzieło wokół buduję moją odpowiedź organizmu błędu.
Czy ustawiłeś konwerter Json? jak poniżej: 'RestAdapter restAdapter = new RestAdapter.Builder() .setConverter (nowy GsonConverter (gson))' – ProblemSlover
@problemsolver yes Tak. Dodałem odpowiedni kod. –
@problemsolver Użyłem 'addConverterFactory' not' setConverter' –