Android Volley ImageLoader - Wie grundlegende HTTP-Autorisierung zu verwenden?

8

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?

    
lopisan 04.06.2013, 13:54
quelle

2 Antworten

6

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.

    
njzk2 04.06.2013, 13:57
quelle
8

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).

    
Rafa 25.07.2013 14:20
quelle

Tags und Links