Example usage for io.netty.handler.codec.http QueryStringDecoder parameters

List of usage examples for io.netty.handler.codec.http QueryStringDecoder parameters

Introduction

In this page you can find the example usage for io.netty.handler.codec.http QueryStringDecoder parameters.

Prototype

public Map<String, List<String>> parameters() 

Source Link

Document

Returns the decoded key-value parameter pairs of the URI.

Usage

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);
    }
}