List of usage examples for io.netty.handler.codec.http.multipart HttpData getString
String getString() throws IOException;
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; }