2016-11-21 5 views
0

Ich habe eine api, das Ergebnis in so etwas wie gibt:Get Retrofit Antwort als String

wenn in Ordnung: OK ID:1234567

nicht in Ordnung: 2 <br>(Please Type something)

Jetzt mit i empfangen möge dies in meinem Android-App Retrofit, eine Möglichkeit, die ich mir vorstellen kann ist Antwort in String und manuell über Fehler oder nicht Fehlerszenario zu erhalten, aber ich kann keinen besseren Weg finden, dies zu tun:

Diese Frage SO nicht erklären die Lösung genug, um zu replizieren: Q1, Q2, Q3

Antwort

3

Es gibt zwei Möglichkeiten:

  • Out of the box Retrofit unterstützt OkHttp des ResponseBody Typen. ResponseBody ist im Grunde eine Abstraktion auf "nur Bytes" und hat eine Methode namens string(), die den Körper als String konsumieren wird.

  • Sie können die converters-scalars artifact hinzufügen und die ScalarsConverterFactory zu Ihrer Instanz hinzufügen, die die Verwendung von String als Antworttyp zulässt.

+0

erste Methode Sinn für mich, und ich habe es Code Beispiel von einer der Frage, danke für die Erklärung –

0

Dies ist ein Beispiel für die erste Möglichkeit. Vielleicht wird es für einige hilfreich sein.

Api Schnittstelle:

public interface APIService { 
@GET("api/get_info") 
    Call<ResponseBody> getInfo();//import okhttp3.ResponseBody; 
} 

Api Aufruf:

// Retrofit service creation code skipped here 
String json = retrofitService().getInfo().execute().body().string(); 

Es ist für mich gearbeitet. Ich benutze Nachrüstung: 2.1.0.