2017-04-09 1 views
-1

ich Retrofit bin mit http Anrufe ausführen:Gibt es eine Möglichkeit, den Namen der Servicemethode bei einem Retrofit-Aufruf zu erhalten?

this.createService().getXXX() 

Gibt es eine Möglichkeit (Interceptor/Adapter) den Namen der Methode des anrufenden Service zu erhalten, die aufgerufen wurde?

+0

also willst du den namen des dienstes in java bekommen, ich bin ein wenig verwirrt? – Remario

+0

die aufgerufene Methode, in diesem Beispiel 'getXXX' – oshai

+0

ach ja, wenn Sie den Dienst aufrufen, möchten Sie eine bequeme Möglichkeit, den letzten Methodennamen zu erhalten, die die Anfrage ausführen? – Remario

Antwort

0

Nun, der einfachste und flüssigste Ansatz wäre die Verwendung von Java-Reflektionen und die Speicherfähigkeit gemeinsamer Voreinstellungen. Alles in allem sagen wir, Sie sind im Begriff, eine refrofit Anfrage, Beispiel eine Post-Anfrage, was Sie tun würden, ist die Reflexion über die Klasse, um den Namen, ClassName.class.getSimpleName(); plus die method name of interest dann erhalten aktuelle Zeitstempel, speichern Sie diese Informationen in eine gemeinsame Präferenz. Wenn Sie von der gemeinsamen Voreinstellung lesen, dann ist es so, dass jeder abgerufene Wert die letzte gesendete Anfrage ist, gekoppelt mit der Zeit. Überschreiben Sie den Schlüsselspeicher einfach jedes Mal, wenn Sie eine Anfrage auf diese Weise machen, können Sie Ihre Anfrage und die Flugzeit bequem verfolgen. Leider gibt es keine bequeme Methode für Sie, etwas selbst zu schmieden.

+0

Aber Sie können einen Interceptor bauen, um Ihre Anfrage zu protokollieren, dieser Interceptor zeigt nur die Route. – Remario

+0

hast du diesen Weg versucht? – Remario

Verwandte Themen