Wie können benutzerdefinierte Header für eine Volley-Anfrage festgelegt werden? Im Moment gibt es eine Möglichkeit, den Textinhalt für eine POST-Anforderung festzulegen. Ich habe eine einfache GET-Anfrage, aber ich muss die benutzerdefinierten Header zusammen übergeben. Ich sehe nicht, wie die JsonRequest-Klasse dies unterstützt. Ist das überhaupt möglich?
android
android-volley
Bianca
quelle
quelle
Antworten:
Es sieht so aus
public Map<String, String> getHeaders()
, als würden Sie , definiert inRequest
, überschreiben , um die gewünschten HTTP-Header zurückzugeben.quelle
GsonRequest
überschreibt die MethodegetHeaders()
, um eine Map mit den Headerparametern zurückzugeben, die Sie im Konstruktor übergeben.Die akzeptierte Antwort mit getParams () dient zum Festlegen von POST-Body-Daten. In der Frage im Titel wurde jedoch gefragt, wie HTTP-Header wie User-Agent festgelegt werden sollen. Wie CommonsWare sagte, überschreiben Sie getHeaders (). Hier ist ein Beispielcode, der den User-Agent auf 'Nintendo Gameboy' und Accept-Language auf 'fr' setzt:
quelle
Wenn Sie Daten veröffentlichen müssen, anstatt die Informationen in die URL einzufügen.
Wenn Sie die Überschriften in der Anforderung bearbeiten möchten, möchten Sie Folgendes tun:
quelle
getHeaders
Antworten richtig .Sie können diese Lösung sehen. Es zeigt, wie Cookies abgerufen / gesetzt werden, aber Cookies sind nur eine der Überschriften in einer Anfrage / Antwort. Sie müssen eine der * Request-Klassen von Volley überschreiben und die erforderlichen Header festlegen
getHeaders()
Hier ist die verlinkte Quelle:
}}
Und MyApp Klasse:
quelle
In Kotlin,
Sie müssen die Methode getHeaders () wie folgt überschreiben :
quelle
Suchen Sie auch nach einer Lösung für dieses Problem. Sehen Sie hier etwas: http://developer.android.com/training/volley/request.html
Ist es eine gute Idee, ImageRequest direkt anstelle von ImageLoader zu verwenden? ImageLoader verwendet es anscheinend sowieso intern. Fehlt etwas anderes als die Cache-Unterstützung von ImageLoader?
quelle
Versuche dies
quelle
Sie können eine benutzerdefinierte Request-Klasse erstellen, die die StringRequest erweitert und die darin enthaltene getHeaders () -Methode wie folgt überschreibt:
quelle
quelle
Als Ergänzung möchte ich etwas mitteilen, das ich in Bezug auf Folgendes gefunden habe
Content-Type
: Oben aufIch musste hinzufügen:
Fragen Sie mich nicht warum, ich dachte nur, es könnte einigen anderen helfen, die das
Content-Type
Set nicht richtig machen können.quelle
Hier setzen Sie Header aus dem Github-Beispiel:
quelle
Versuche dies
quelle
Das ist mein Code, nicht vergessen = Objekt: Wenn nicht setzen, funktioniert nicht
quelle