Ich möchte mit Volleys NetworkImageView
Bilder von meiner REST-API laden, die eine einfache HTTP-Autorisierung benötigt. Also muss ich der HTTP-Anfrage Header hinzufügen.
Ich habe folgende Ansätze erfunden:
Überschreibe Request.getHeaders()
- wie in dieser Frage beschrieben.
Das wäre in Ordnung, aber das Problem ist, dass ImageLoader
new ImageRequest()
fest codiert hat, so dass ich meine Request
-Implementierung nicht in ImageLoader
weitergeben kann und sie nicht einfach vererbt und optimiert werden kann (die Methode müsste ich neu implementieren) verwendet private Eigenschaften).
Die Lösung besteht darin, die Volley-Bibliothek selbst zu modifizieren (was ich vermeiden möchte).
Verwenden Sie Custom HttpClientStack - wie beschrieben hier . Mit diesem Ansatz wäre ich in der Lage, HTTP-Kommunikation abzufangen und notwendige Header hinzuzufügen. Aber ich denke, das ist nicht der richtige Weg - ich würde die automatische Auswahl von HttpClient durch Volley (Gingerbread vs. HC und IC) verlieren.
Gibt es einen einfacheren Weg, um das zu erreichen, was ich vermisse?
Ich habe getHeaders()
ebenfalls überschrieben. Bisher habe ich keinen Weg gefunden, das einfacher zu machen.
Siehe dieses Beispiel Ссылка einer überschriebenen Anfrage an Fügen Sie den Authorization-Header hinzu.
Im Volley-Code sehe ich keine Möglichkeit, benutzerdefinierte Header hinzuzufügen, wenn das Request-Objekt nicht überschrieben wird.
Außerdem kann ich nicht sehen, wie es einfach hinzugefügt werden kann, wenn man die Struktur von Volley verwendet, da die Images, ImageRequests vom ImageLoader erstellt werden.
Wenn ich Volley modifizieren würde, um dies zu ermöglichen, würde ich es ermöglichen, eine benutzerdefinierte Klasse extends ImageRequest im ImageLoader zu verwenden. Die anonyme ImageRequest-Klasse in ImageLoader macht es jedoch etwas kompliziert.
Ich denke, HTTP-Stacks sind der Weg zu gehen. Es gibt keinen Verlust der automatischen HttpClient-Auswahl, wenn Sie Ihre Überschreibungen basierend auf der SDK-Version ausführen, genau wie bei Volley.
%Vor%Siehe Quelle der Salve (Zeile 53).
Tags und Links android android-volley