2017-02-20 2 views
-1

Ich würde gerne verstehen, wie Retrofit funktioniert, aber die offizielle Dokumentation ist sehr schwach.Wie erhalten Sie String als Antwort mit Retrofit 2?

Ich muss eine sehr einfache GET Anfrage machen und die Antwort erhalten als String.

Jetzt benutze ich Standard HTTPUrlConnection und es funktioniert gut, nur fordern - Antwort

Kann mir jemand sagen, wie man eine String Antwort zu erhalten, ohne sie auf ein Objekt oder etwas wie das Umwandeln?

+0

Ich habe herausgefunden, dass ihre Beispiele ausreichen, obwohl die zweite Version Änderungen erfordert. Sie müssen auf dem Posten, was Sie bis jetzt haben, und dann werden Leute schauen und Ihnen sagen, wo Ihr Problem ist. [So erstellen Sie ein minimales, vollständiges und überprüfbares Beispiel] (http://stackoverflow.com/help/mcve) –

+0

@Aleksey Sie können String einfach übergeben in Call getString(); –

Antwort

1

Sie können ScalarsConverterFactory für Strings und beide Primitiven und ihre Boxed-Typen für text/plain bodies verwenden. diese Abhängigkeit zu Ihrer build.gradle Datei hinzufügen:

compile 'com.squareup.retrofit2:converter-scalars:2.1.0' 

Try this:

public interface ExampleService { 
@GET("https://stackoverflow.com/users/{user}/repos") 
Call<String> listRepos(@Path("user") String user); 
} 

Und ScalarsConverterFactory zu Ihrem Erbauer hinzufügen:

Retrofit retrofit = new Retrofit.Builder() 
.baseUrl(BASE_URL) 
.addConverterFactory(ScalarsConverterFactory.create()) 
.build(); 

Sie wie folgt diese Zeichenfolge dann abrufen kann :

Call<String> call = exampleService.listRepos(user); 
Response<String> response = call.execute(); 
String value = response.body(); 
Verwandte Themen