Example usage for io.netty.handler.codec.http.multipart HttpData getString

List of usage examples for io.netty.handler.codec.http.multipart HttpData getString

Introduction

In this page you can find the example usage for io.netty.handler.codec.http.multipart HttpData getString.

Prototype

String getString() throws IOException;

Source Link

Document

Returns the contents of the file item as a String, using the default character encoding.

Usage

From source file:net.mms_projects.copy_it.api.oauth.HeaderVerifier.java

License:Open Source License

/**
 * Create method for the raw signature base for post requests
 * @see net.mms_projects.copy_it.api.oauth.HeaderVerifier#checkSignature(io.netty.handler.codec.http.multipart.HttpPostRequestDecoder, boolean)
 */// w ww. j  ava2s . c  o  m
private String createRaw(HttpPostRequestDecoder post, boolean https)
        throws UnsupportedEncodingException, URISyntaxException {
    final StringBuilder rawbuilder = new StringBuilder();
    rawbuilder.append(request.getMethod().toString());
    rawbuilder.append('&');
    rawbuilder.append(HTTP);
    if (https)
        rawbuilder.append('s');
    rawbuilder.append(COLON_SLASH_SLASH);
    rawbuilder.append(URLEncoder.encode(request.headers().get(HOST), UTF_8));
    rawbuilder.append(URLEncoder.encode(uri.getPath(), UTF_8));
    rawbuilder.append('&');
    if (uri.getQuery() == null && request.getMethod() == HttpMethod.GET) {
        String[] loop_through = OAuthParameters.KEYS;
        if ((flags & Flags.REQUIRES_VERIFIER) == Flags.REQUIRES_VERIFIER)
            loop_through = OAuthParameters.VERIFIER_KEYS;
        for (int i = 0; i < loop_through.length; i++) {
            rawbuilder.append(loop_through[i]);
            rawbuilder.append(EQUALS);
            rawbuilder.append(URLEncoder.encode(oauth_params.get(loop_through[i]), UTF_8));
            if (i != (loop_through.length - 1))
                rawbuilder.append(AND);
        }
    } else {
        final List<String> keys = new ArrayList<String>();
        final Map<String, String> parameters = new HashMap<String, String>();
        if (request.getMethod() == HttpMethod.GET) {
            final QueryStringDecoder querydecoder = new QueryStringDecoder(uri);
            final Map<String, List<String>> get_parameters = querydecoder.parameters();
            final Set<String> keyset = parameters.keySet();
            final Iterator<String> iter = keyset.iterator();
            while (iter.hasNext()) {
                final String key = iter.next();
                keys.add(key);
                parameters.put(key, get_parameters.get(key).get(0));
            }
        } else if (request.getMethod() == HttpMethod.POST) {
            final List<InterfaceHttpData> post_parameters = post.getBodyHttpDatas();
            final Iterator<InterfaceHttpData> iter = post_parameters.iterator();
            while (iter.hasNext()) {
                final InterfaceHttpData data = iter.next();
                try {
                    final HttpData httpData = (HttpData) data;
                    parameters.put(httpData.getName(),
                            URLEncoder.encode(httpData.getString(), UTF_8).replace(PLUS, PLUS_ENCODED));
                    keys.add(httpData.getName());
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        for (int i = 0; i < OAuthParameters.KEYS.length; i++)
            keys.add(OAuthParameters.KEYS[i]);
        if ((flags & Flags.REQUIRES_VERIFIER) == Flags.REQUIRES_VERIFIER)
            keys.add(OAuthParameters.OAUTH_VERIFIER);
        Collections.sort(keys);
        final int length = keys.size();
        for (int i = 0; i < length; i++) {
            final String key = keys.get(i);
            rawbuilder.append(key);
            rawbuilder.append(EQUALS);
            if (key.startsWith(OAUTH_))
                rawbuilder.append(URLEncoder.encode(oauth_params.get(key), UTF_8));
            else
                rawbuilder.append(URLEncoder.encode(parameters.get(key), UTF_8));
            if (i != (length - 1))
                rawbuilder.append(AND);
        }
    }
    System.err.println(rawbuilder.toString());
    return rawbuilder.toString();
}

From source file:org.jooby.internal.netty.NettyRequest.java

License:Apache License

private Multimap<String, String> decodeParams() throws IOException {
    if (params == null) {
        params = ArrayListMultimap.create();
        files = ArrayListMultimap.create();

        query.parameters().forEach((name, values) -> values.forEach(value -> params.put(name, value)));

        HttpMethod method = req.method();
        boolean hasBody = method.equals(HttpMethod.POST) || method.equals(HttpMethod.PUT)
                || method.equals(HttpMethod.PATCH);
        boolean formLike = false;
        if (req.headers().contains("Content-Type")) {
            String contentType = req.headers().get("Content-Type").toLowerCase();
            formLike = (contentType.startsWith(MediaType.multipart.name())
                    || contentType.startsWith(MediaType.form.name()));
        }/*from w  w  w .ja v a2s . c  o m*/
        if (hasBody && formLike) {
            HttpPostRequestDecoder decoder = new HttpPostRequestDecoder(new DefaultHttpDataFactory(), req);
            try {
                Function<HttpPostRequestDecoder, Boolean> hasNext = it -> {
                    try {
                        return it.hasNext();
                    } catch (HttpPostRequestDecoder.EndOfDataDecoderException ex) {
                        return false;
                    }
                };
                while (hasNext.apply(decoder)) {
                    HttpData field = (HttpData) decoder.next();
                    try {
                        String name = field.getName();
                        if (field.getHttpDataType() == HttpDataType.FileUpload) {
                            files.put(name, new NettyUpload((FileUpload) field, tmpdir));
                        } else {
                            params.put(name, field.getString());
                        }
                    } finally {
                        field.release();
                    }
                }
            } finally {
                decoder.destroy();
            }
        }
    }
    return params;
}