Wie codiert man Abfrageparameter für eine URL in Java? Ich weiß, das scheint eine offensichtliche und bereits gestellte Frage zu sein.
Es gibt zwei Feinheiten, bei denen ich mir nicht sicher bin:
- Sollten Leerzeichen in der URL als "+" oder als "% 20" codiert werden? Wenn ich in Chrome "http://google.com/foo=?bar me" eingebe, ändert Chrome es so, dass es mit% 20 codiert wird
- Ist es notwendig / richtig, Doppelpunkte ":" als% 3B zu codieren? Chrome nicht.
Anmerkungen:
java.net.URLEncoder.encode
scheint nicht zu funktionieren, es scheint zu sein, dass Codierungsdaten vom Formular gesendet werden. Beispielsweise wird der Speicherplatz als+
anstelle von%20
und der Doppelpunkt codiert, der nicht erforderlich ist.java.net.URI
codiert keine Abfrageparameter
application/x-www-form-urlencoded
Schlüssel / Wert-Paare erwarten . Weitere Informationen finden