So erhalten Sie den query-string in einer mit Java-HttpServer/HttpExchange?
Ich bin versucht, zu erstellen eine einfache HttpServer in Java zu verarbeiten GET-Anfragen
aber wenn ich versuche, um die GET-Parameter für eine Anfrage mir ist aufgefallen das HttpExchange Klasse keine Methode für die.
Weiß jemand eine einfache Möglichkeit zum Lesen der GET-Parameter (query-string)?
Dies ist, wie mein handler sieht folgendermaßen aus:
public class TestHandler{
@Override
public void handle(HttpExchange exc) throws IOxception {
String response = "This is the reponse";
exc.sendResponseHeaders(200, response.length());
//need GET params here
OutputStream os = exc.getResponseBody();
os.write(response.getBytes());
os.close();
}
}
.. und der main-Methode:
public static void main(String[] args) throws Exception{
//create server on port 8000
InetSocketAddress address = new InetSocketAddress(8000);
HttpServer server = new HttpServer.create(address, 0);
//bind handler
server.createContext("/highscore", new TestHandler());
server.setExecutor(null);
server.start();
}
InformationsquelleAutor der Frage Tibor | 2012-07-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Folgende:
httpExchange.getRequestURI().getQuery()
zurück Zeichenfolge in ein format ähnlich wie diese:
"field1=value1&field2=value2&field3=value3..."
so könnte man einfach die parse-string selbst, dies ist wie die Funktion für die Analyse könnte wie folgt Aussehen:
Und dies ist, wie Sie es verwenden können:
InformationsquelleAutor der Antwort anon01
Diese Antwort, im Gegensatz zu annon01 ist, ordnungsgemäß decodiert die Schlüssel und Werte. Es nicht
String.split
aber durchsucht den string mitindexOf
welche schneller ist.InformationsquelleAutor der Antwort Oliv
Aufbauend auf die Antwort von @anon01, das ist, wie es in Groovy:
Und das ist, wie es zu benutzen:
InformationsquelleAutor der Antwort Wim Deblauwe