diff --git a/brouter-server/src/main/java/btools/server/RouteServer.java b/brouter-server/src/main/java/btools/server/RouteServer.java index 9c56d83..51c4e12 100644 --- a/brouter-server/src/main/java/btools/server/RouteServer.java +++ b/brouter-server/src/main/java/btools/server/RouteServer.java @@ -5,9 +5,11 @@ import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; +import java.io.UnsupportedEncodingException; import java.net.InetAddress; import java.net.ServerSocket; import java.net.Socket; +import java.net.URLDecoder; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; @@ -216,10 +218,11 @@ public class RouteServer extends Thread } - private static HashMap getUrlParams( String url ) + private static HashMap getUrlParams( String url ) throws UnsupportedEncodingException { HashMap params = new HashMap(); - StringTokenizer tk = new StringTokenizer( url, "?&" ); + String decoded = URLDecoder.decode( url, "UTF-8" ); + StringTokenizer tk = new StringTokenizer( decoded, "?&" ); while( tk.hasMoreTokens() ) { String t = tk.nextToken(); diff --git a/brouter-server/src/main/java/btools/server/request/ServerHandler.java b/brouter-server/src/main/java/btools/server/request/ServerHandler.java index 96e2506..8388411 100644 --- a/brouter-server/src/main/java/btools/server/request/ServerHandler.java +++ b/brouter-server/src/main/java/btools/server/request/ServerHandler.java @@ -73,18 +73,14 @@ public class ServerHandler extends RequestHandler { String[] coords = lonLats.split("\\|"); if (coords.length < 2) - coords = lonLats.split("%7C"); - if (coords.length < 2) - throw new IllegalArgumentException( "we need two lat/lon points at least!" ); + throw new IllegalArgumentException( "we need two lat/lon points at least!" ); List wplist = new ArrayList(); for (int i = 0; i < coords.length; i++) { String[] lonLat = coords[i].split(","); if (lonLat.length < 2) - lonLat = coords[i].split("%2C"); - if (lonLat.length < 2) - throw new IllegalArgumentException( "we need two lat/lon points at least!" ); + throw new IllegalArgumentException( "we need two lat/lon points at least!" ); wplist.add( readPosition( lonLat[0], lonLat[1], "via" + i ) ); }