diff options
Diffstat (limited to 'jdisc_http_service/src/main/java/com/yahoo/jdisc/http/HttpRequest.java')
-rw-r--r-- | jdisc_http_service/src/main/java/com/yahoo/jdisc/http/HttpRequest.java | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/HttpRequest.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/HttpRequest.java index ff80a8a845d..50806cc655d 100644 --- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/HttpRequest.java +++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/HttpRequest.java @@ -9,7 +9,8 @@ import com.yahoo.jdisc.handler.RequestHandler; import com.yahoo.jdisc.handler.ResponseHandler; import com.yahoo.jdisc.http.servlet.ServletOrJdiscHttpRequest; import com.yahoo.jdisc.service.CurrentContainer; -import org.jboss.netty.handler.codec.http.QueryStringDecoder; +import org.eclipse.jetty.http.HttpURI; +import org.eclipse.jetty.util.MultiMap; import java.net.InetAddress; import java.net.InetSocketAddress; @@ -84,7 +85,7 @@ public class HttpRequest extends Request implements ServletOrJdiscHttpRequest { this.method = method; this.version = version; this.remoteAddress = remoteAddress; - this.parameters.putAll(new QueryStringDecoder(uri.toString(), true).getParameters()); + this.parameters.putAll(getUriQueryParameters(uri)); if (connectedAtMillis != null) { this.connectedAt = connectedAtMillis; } else { @@ -102,7 +103,7 @@ public class HttpRequest extends Request implements ServletOrJdiscHttpRequest { this.method = method; this.version = version; this.remoteAddress = null; - this.parameters.putAll(new QueryStringDecoder(uri.toString(), true).getParameters()); + this.parameters.putAll(getUriQueryParameters(uri)); this.connectedAt = creationTime(TimeUnit.MILLISECONDS); } catch (RuntimeException e) { release(); @@ -110,6 +111,12 @@ public class HttpRequest extends Request implements ServletOrJdiscHttpRequest { } } + private static Map<String, List<String>> getUriQueryParameters(URI uri) { + MultiMap<String> queryParameters = new MultiMap<>(); + new HttpURI(uri).decodeQueryTo(queryParameters); + return queryParameters; + } + public Method getMethod() { return method; } |