List of usage examples for io.netty.handler.codec.http QueryStringDecoder parameters
public Map<String, List<String>> parameters()
From source file:netty.HttpSnoopServerHandler.java
License:Apache License
@Override protected void channelRead0(ChannelHandlerContext ctx, Object msg) { if (msg instanceof HttpRequest) { HttpRequest request = this.request = (HttpRequest) msg; if (is100ContinueExpected(request)) { send100Continue(ctx);// www . ja v a2 s . c o m } buf.setLength(0); buf.append("WELCOME TO THE WILD WILD WEB SERVER\r\n"); buf.append("===================================\r\n"); buf.append("VERSION: ").append(request.getProtocolVersion()).append("\r\n"); buf.append("HOSTNAME: ").append(getHost(request, "unknown")).append("\r\n"); buf.append("REQUEST_URI: ").append(request.getUri()).append("\r\n\r\n"); HttpHeaders headers = request.headers(); if (!headers.isEmpty()) { for (Map.Entry<String, String> h : headers) { String key = h.getKey(); String value = h.getValue(); buf.append("HEADER: ").append(key).append(" = ").append(value).append("\r\n"); } buf.append("\r\n"); } QueryStringDecoder queryStringDecoder = new QueryStringDecoder(request.getUri()); Map<String, List<String>> params = queryStringDecoder.parameters(); if (!params.isEmpty()) { for (Entry<String, List<String>> p : params.entrySet()) { String key = p.getKey(); List<String> vals = p.getValue(); for (String val : vals) { buf.append("PARAM: ").append(key).append(" = ").append(val).append("\r\n"); } } buf.append("\r\n"); } appendDecoderResult(buf, request); } if (msg instanceof HttpContent) { HttpContent httpContent = (HttpContent) msg; ByteBuf content = httpContent.content(); if (content.isReadable()) { buf.append("CONTENT: "); buf.append(content.toString(CharsetUtil.UTF_8)); buf.append("\r\n"); appendDecoderResult(buf, request); } if (msg instanceof LastHttpContent) { buf.append("END OF CONTENT\r\n"); LastHttpContent trailer = (LastHttpContent) msg; if (!trailer.trailingHeaders().isEmpty()) { buf.append("\r\n"); for (String name : trailer.trailingHeaders().names()) { for (String value : trailer.trailingHeaders().getAll(name)) { buf.append("TRAILING HEADER: "); buf.append(name).append(" = ").append(value).append("\r\n"); } } buf.append("\r\n"); } writeResponse(trailer, ctx); } } }
From source file:org.animotron.bridge.http.helper.AbstractRequestExpression.java
License:Open Source License
private void params() throws AnimoException, IOException { final QueryStringDecoder queryStringDecoder = new QueryStringDecoder(request.getUri()); final Map<String, List<String>> params = queryStringDecoder.parameters(); if (!params.isEmpty()) { for (Entry<String, List<String>> p : params.entrySet()) { final String name = p.getKey(); builder.start(AN._);// w w w . ja v a 2 s. c o m builder._(REF._, name); final List<String> values = p.getValue(); for (String value : values) { builder._(value); } builder.end(); } } }
From source file:org.apache.hadoop.hdfs.server.datanode.web.webhdfs.ParameterParser.java
License:Apache License
ParameterParser(QueryStringDecoder decoder, Configuration conf) { this.path = decodeComponent(decoder.path().substring(WEBHDFS_PREFIX_LENGTH), Charsets.UTF_8); this.params = decoder.parameters(); this.conf = conf; }
From source file:org.apache.hadoop.hdfs.tools.offlineImageViewer.FSImageHandler.java
License:Apache License
private static String getOp(QueryStringDecoder decoder) { Map<String, List<String>> parameters = decoder.parameters(); return parameters.containsKey("op") ? StringUtils.toUpperCase(parameters.get("op").get(0)) : null; }
From source file:org.apache.hadoop.hdfs.tools.offlineImageViewer.FSImageHandler.java
License:Apache License
private static List<String> getXattrNames(QueryStringDecoder decoder) { Map<String, List<String>> parameters = decoder.parameters(); return parameters.get("xattr.name"); }
From source file:org.apache.hadoop.hdfs.tools.offlineImageViewer.FSImageHandler.java
License:Apache License
private static String getEncoder(QueryStringDecoder decoder) { Map<String, List<String>> parameters = decoder.parameters(); return parameters.containsKey("encoding") ? parameters.get("encoding").get(0) : null; }
From source file:org.apache.hyracks.http.server.BaseRequest.java
License:Apache License
public static IServletRequest create(FullHttpRequest request) throws IOException { QueryStringDecoder decoder = new QueryStringDecoder(request.uri()); Map<String, List<String>> param = decoder.parameters(); return new BaseRequest(request, param); }
From source file:org.apache.servicecomb.provider.springmvc.reference.async.CseAsyncClientHttpRequest.java
License:Apache License
@Override public ListenableFuture<ClientHttpResponse> executeAsync() { this.setPath(findUriPath(this.getURI())); this.setRequestMeta(createRequestMeta(this.getMethod().name(), this.getURI())); QueryStringDecoder queryStringDecoder = new QueryStringDecoder(this.getURI().getRawSchemeSpecificPart()); this.setQueryParams(queryStringDecoder.parameters()); Object[] args = this.collectArguments(); return this.invoke(args); }
From source file:org.apache.servicecomb.provider.springmvc.reference.CseClientHttpRequest.java
License:Apache License
@Override public ClientHttpResponse execute() { path = findUriPath(uri);/* w w w . j a v a 2 s . c o m*/ requestMeta = createRequestMeta(method.name(), uri); QueryStringDecoder queryStringDecoder = new QueryStringDecoder(uri.getRawSchemeSpecificPart()); queryParams = queryStringDecoder.parameters(); Object[] args = this.collectArguments(); // ? return this.invoke(args); }
From source file:org.apache.tinkerpop.gremlin.server.handler.HttpGremlinEndpointHandler.java
License:Apache License
private static Quartet<String, Map<String, Object>, String, Map<String, String>> getRequestArguments( final FullHttpRequest request) { if (request.getMethod() == GET) { final QueryStringDecoder decoder = new QueryStringDecoder(request.getUri()); final List<String> gremlinParms = decoder.parameters().get(Tokens.ARGS_GREMLIN); if (null == gremlinParms || gremlinParms.size() == 0) throw new IllegalArgumentException("no gremlin script supplied"); final String script = gremlinParms.get(0); if (script.isEmpty()) throw new IllegalArgumentException("no gremlin script supplied"); // query string parameters - take the first instance of a key only - ignore the rest final Map<String, Object> bindings = new HashMap<>(); decoder.parameters().entrySet().stream().filter(kv -> kv.getKey().startsWith(ARGS_BINDINGS_DOT)) .forEach(kv -> bindings.put(kv.getKey().substring(ARGS_BINDINGS_DOT.length()), kv.getValue().get(0))); // don't allow both rebindings and aliases parameters as they are the same thing. aliases were introduced // as of 3.1.0 as a replacement for rebindings. this check can be removed when rebindings are completely // removed from the protocol final boolean hasRebindings = decoder.parameters().entrySet().stream() .anyMatch(kv -> kv.getKey().startsWith(ARGS_REBINDINGS_DOT)); final boolean hasAliases = decoder.parameters().entrySet().stream() .anyMatch(kv -> kv.getKey().startsWith(ARGS_ALIASES_DOT)); if (hasRebindings && hasAliases) throw new IllegalArgumentException( "prefer use of the 'aliases' parameter over 'rebindings' and do not use both"); final Map<String, String> aliases = new HashMap<>(); final String rebindingOrAliasParameter = hasRebindings ? ARGS_REBINDINGS_DOT : ARGS_ALIASES_DOT; decoder.parameters().entrySet().stream().filter(kv -> kv.getKey().startsWith(rebindingOrAliasParameter)) .forEach(kv -> aliases.put(kv.getKey().substring(rebindingOrAliasParameter.length()), kv.getValue().get(0))); final List<String> languageParms = decoder.parameters().get(Tokens.ARGS_LANGUAGE); final String language = (null == languageParms || languageParms.size() == 0) ? null : languageParms.get(0);/*from w w w . j av a 2 s.co m*/ return Quartet.with(script, bindings, language, aliases); } else { final JsonNode body; try { body = mapper.readTree(request.content().toString(CharsetUtil.UTF_8)); } catch (IOException ioe) { throw new IllegalArgumentException("body could not be parsed", ioe); } final JsonNode scriptNode = body.get(Tokens.ARGS_GREMLIN); if (null == scriptNode) throw new IllegalArgumentException("no gremlin script supplied"); final JsonNode bindingsNode = body.get(Tokens.ARGS_BINDINGS); if (bindingsNode != null && !bindingsNode.isObject()) throw new IllegalArgumentException("bindings must be a Map"); final Map<String, Object> bindings = new HashMap<>(); if (bindingsNode != null) bindingsNode.fields() .forEachRemaining(kv -> bindings.put(kv.getKey(), fromJsonNode(kv.getValue()))); // don't allow both rebindings and aliases parameters as they are the same thing. aliases were introduced // as of 3.1.0 as a replacement for rebindings. this check can be removed when rebindings are completely // removed from the protocol final boolean hasRebindings = body.has(Tokens.ARGS_REBINDINGS); final boolean hasAliases = body.has(Tokens.ARGS_ALIASES); if (hasRebindings && hasAliases) throw new IllegalArgumentException( "prefer use of the 'aliases' parameter over 'rebindings' and do not use both"); final String rebindingOrAliasParameter = hasRebindings ? Tokens.ARGS_REBINDINGS : Tokens.ARGS_ALIASES; final JsonNode aliasesNode = body.get(rebindingOrAliasParameter); if (aliasesNode != null && !aliasesNode.isObject()) throw new IllegalArgumentException("aliases must be a Map"); final Map<String, String> aliases = new HashMap<>(); if (aliasesNode != null) aliasesNode.fields().forEachRemaining(kv -> aliases.put(kv.getKey(), kv.getValue().asText())); final JsonNode languageNode = body.get(Tokens.ARGS_LANGUAGE); final String language = null == languageNode ? null : languageNode.asText(); return Quartet.with(scriptNode.asText(), bindings, language, aliases); } }