Ich konnte nur das Beispiel Hallo Welt (GithubService) aus den Dokumenten ausführen.Wie wird eine POST-Anfrage mit Retrofit 2 durchgeführt?
Das Problem ist, wenn ich meinen Code ausführen, ich folgende Fehlermeldung erhalten, innerhalb von onFailure()
Verwenden JsonReader.setLenient (true) in Zeile 1 Spalte 1 Pfad malformed JSON zu akzeptieren $
Meine API akzeptiert POST-Parameterwerte, daher müssen Sie sie nicht als JSON codieren, aber sie gibt die Antwort in JSON zurück.
Für die Antwort habe ich ApiResponse-Klasse, die ich mit Tools generiert.
Meine Schnittstelle:
public interface ApiService {
@POST("/")
Call<ApiResponse> request(@Body HashMap<String, String> parameters);
}
Hier ist, wie ich den Dienst nutzen:
HashMap<String, String> parameters = new HashMap<>();
parameters.put("api_key", "xxxxxxxxx");
parameters.put("app_id", "xxxxxxxxxxx");
Call<ApiResponse> call = client.request(parameters);
call.enqueue(new Callback<ApiResponse>() {
@Override
public void onResponse(Response<ApiResponse> response) {
Log.d(LOG_TAG, "message = " + response.message());
if(response.isSuccess()){
Log.d(LOG_TAG, "-----isSuccess----");
}else{
Log.d(LOG_TAG, "-----isFalse-----");
}
}
@Override
public void onFailure(Throwable t) {
Log.d(LOG_TAG, "----onFailure------");
Log.e(LOG_TAG, t.getMessage());
Log.d(LOG_TAG, "----onFailure------");
}
});
die vollständige Stacktrace veröffentlichen, aber das Problem ist wahrscheinlich, dass die Antwort ungültig ist. es gibt viele Debug-Optionen in Retrofit, verwenden Sie sie – njzk2