Je continue d'apprendre la modernisation et je souhaite gérer la réponse du serveur.
Structure de la réponse du facteur
â¹ ÃË`Iâ%&/mÄ{JÅJÃÅtËâ¬`$Å�@ÄÃ�ÃÄâÄiG#)«*�ÄeVe]f@ÄÃťĽ÷Ţ{ÄË÷Ţ{ÄË÷Å;Å¥N'÷ÃË?\fdlöÃJÃÞ!â¬ÅÄ?~|?"~ÅGÃz:ÃóY>űÄÅyV6ůÄÅĽ®«ÅůÄÅ÷~ÅGÃjâôÄŧëUYLÅ6ËÅÃëŮ"ËhôÅ,o¦u±jâ¹jI-ÄEŤoÅŹ_eçÄ´hŬ¬ólvť¶ŮŰ|9Å£Äâ|Ëâ
code de POST
XXX
RegisterResponseModel
@SerializedName("errors") @Expose
J'ai essayé d'utiliser List, ArrayList et juste String et evenn serialize:
private String succeeded; private ArrayList<String> errors;
3 Réponses :
Ne traitez pas ce cas comme un cas de réussite. Si le backend vous renvoie une erreur, vous devez la gérer comme les erreurs. J'utilise un intercepteur personnalisé pour okHttp comme celui-ci
class ErrorInterceptor : Interceptor { @Throws(IOException::class) override fun intercept(chain: Interceptor.Chain): Response { val request = chain.request() val response = chain.proceed(request) if (<Check is repsonce fail>) { val body = response.body() body?.let(::parseBackendError) ?: throw IOException("Body is null") } return response } private fun parseBackendError(responseBody: ResponseBody) { <Parce your error list and throw exeption> } }
Vous pouvez analyser ce json avec une erreur ArrayList;
public class Error { private String code; private String description; public String getCode() { return code; } public void setCode(String code) { this.code = code; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } @Override public String toString() { return "Error [code=" + code + ", description=" + description + "]"; }
classe publique RegisterResponseModel {
private boolean succeded; private List<Error> errors; public boolean isSucceded() { return succeded; } public void setSucceded(boolean succeded) { this.succeded = succeded; } public List<Error> getErrors() { return errors; } public void setErrors(List<Error> errors) { this.errors = errors; } @Override public String toString() { return "TestDTO [succeded=" + succeded + ", errors=" + errors + "]"; }
}
import java.util.List;
}
Ajoutez ceci à votre méthode de publication @FormUrlEncoded