List of usage examples for io.netty.handler.codec.http HttpMethod GET
HttpMethod GET
To view the source code for io.netty.handler.codec.http HttpMethod GET.
Click Source Link
From source file:net.anyflow.menton.http.HttpClient.java
License:Apache License
public HttpClient(String uri, boolean useInsecureTrustManagerFactory) throws URISyntaxException, UnsupportedOperationException { trustManagerFactory = useInsecureTrustManagerFactory ? InsecureTrustManagerFactory.INSTANCE : null; bootstrap = new Bootstrap(); httpRequest = new HttpRequest(new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, uri)); if (httpRequest().uriObject().getScheme().equalsIgnoreCase("http") == false && httpRequest().uriObject().getScheme().equalsIgnoreCase("https") == false) { String message = "HTTP(S) is supported only."; logger.error(message);// w w w .j a v a 2 s . c o m throw new UnsupportedOperationException(message); } }
From source file:net.anyflow.menton.http.HttpClient.java
License:Apache License
@Override public HttpResponse get(final MessageReceiver receiver) { httpRequest().setMethod(HttpMethod.GET); return request(receiver); }
From source file:net.anyflow.menton.http.HttpRequest.java
License:Apache License
public Map<String, List<String>> parameters() { if (parameters != null) { return parameters; }/*from w w w . j a v a 2 s.co m*/ Map<String, List<String>> ret = Maps.newHashMap(); if (HttpMethod.GET.equals(method()) || HttpMethod.DELETE.equals(method())) { ret.putAll((new QueryStringDecoder(uri())).parameters()); return ret; } else if (headers().contains(HttpHeaderNames.CONTENT_TYPE) && headers().get(HttpHeaderNames.CONTENT_TYPE) .startsWith(HttpHeaderValues.APPLICATION_X_WWW_FORM_URLENCODED.toString()) && (HttpMethod.POST.equals(method()) || HttpMethod.PUT.equals(method()))) { ret.putAll((new QueryStringDecoder("/dummy?" + content().toString(CharsetUtil.UTF_8))).parameters()); } return ret; }
From source file:net.anyflow.menton.http.HttpRequest.java
License:Apache License
private void normalizeParameters() { String address = (new StringBuilder()).append(uriObject().getScheme()).append("://") .append(uriObject().getAuthority()).append(uriObject().getPath()).toString(); if (HttpMethod.GET.equals(method()) || HttpMethod.DELETE.equals(method())) { String parameters = convertParametersToString(); address += Strings.isNullOrEmpty(parameters) ? "" : "?" + parameters; } else if ((HttpMethod.POST.equals(method()) || HttpMethod.PUT.equals(method())) && (headers().contains(HttpHeaderNames.CONTENT_TYPE) == false || headers().get(HttpHeaderNames.CONTENT_TYPE) .startsWith(HttpHeaderValues.APPLICATION_X_WWW_FORM_URLENCODED.toString()))) { ByteBuf content = Unpooled.copiedBuffer(convertParametersToString(), CharsetUtil.UTF_8); headers().set(HttpHeaderNames.CONTENT_LENGTH, content.readableBytes()); content().clear();/* w w w .j a va 2 s .co m*/ content().writeBytes(content); } setUri(address); }
From source file:net.mms_projects.copy_it.api.http.Handler.java
License:Open Source License
/** * Internal message handler, this is where all the http requests come in. This is where most of the authorization * and page logic goes on./*from w w w . ja va2 s . c o m*/ * @see net.mms_projects.copy_it.api.http.Page * @see net.mms_projects.copy_it.api.oauth.HeaderVerifier */ protected void messageReceived(final ChannelHandlerContext chx, final HttpObject o) throws Exception { if (o instanceof HttpRequest) { final HttpRequest http = (HttpRequest) o; this.request = http; final URI uri = new URI(request.getUri()); if ((page = Page.getNoAuthPage(uri.getPath())) != null) { database = DatabasePool.getDBConnection(); if (request.getMethod() == HttpMethod.GET) { try { final FullHttpResponse response = page.onGetRequest(request, database); HttpHeaders.setContentLength(response, response.content().readableBytes()); HttpHeaders.setHeader(response, CONTENT_TYPE, page.GetContentType()); if (isKeepAlive(request)) { HttpHeaders.setKeepAlive(response, true); chx.write(response); } else chx.write(response).addListener(ChannelFutureListener.CLOSE); } catch (ErrorException e) { e.printStackTrace(); final FullHttpResponse response = new DefaultFullHttpResponse(request.getProtocolVersion(), e.getStatus(), Unpooled.copiedBuffer(e.toString(), CharsetUtil.UTF_8)); HttpHeaders.setHeader(response, CONTENT_TYPE, Page.ContentTypes.JSON_TYPE); chx.write(response).addListener(ChannelFutureListener.CLOSE); } catch (Exception e) { e.printStackTrace(); final FullHttpResponse response = new DefaultFullHttpResponse(request.getProtocolVersion(), INTERNAL_SERVER_ERROR); chx.write(response).addListener(ChannelFutureListener.CLOSE); } } else if (request.getMethod() == HttpMethod.POST) postRequestDecoder = new HttpPostRequestDecoder(request); } else if ((page = Page.getAuthPage(uri.getPath())) == null) { final FullHttpResponse response = new DefaultFullHttpResponse(request.getProtocolVersion(), NOT_FOUND, Unpooled.copiedBuffer("404", CharsetUtil.UTF_8)); chx.write(response).addListener(ChannelFutureListener.CLOSE); } else { try { headerVerifier = new HeaderVerifier(http, uri); database = DatabasePool.getDBConnection(); headerVerifier.verifyConsumer(database); headerVerifier.verifyOAuthToken(database); headerVerifier.verifyOAuthNonce(database); if (request.getMethod() == HttpMethod.GET) { headerVerifier.checkSignature(null, false); final FullHttpResponse response = ((AuthPage) page).onGetRequest(request, database, headerVerifier); HttpHeaders.setContentLength(response, response.content().readableBytes()); HttpHeaders.setHeader(response, CONTENT_TYPE, page.GetContentType()); if (isKeepAlive(request)) { HttpHeaders.setKeepAlive(response, true); chx.write(response); } else chx.write(response).addListener(ChannelFutureListener.CLOSE); } else if (request.getMethod() == HttpMethod.POST) postRequestDecoder = new HttpPostRequestDecoder(request); } catch (ErrorException e) { e.printStackTrace(); final FullHttpResponse response = new DefaultFullHttpResponse(request.getProtocolVersion(), e.getStatus(), Unpooled.copiedBuffer(e.toString(), CharsetUtil.UTF_8)); HttpHeaders.setHeader(response, CONTENT_TYPE, Page.ContentTypes.JSON_TYPE); chx.write(response).addListener(ChannelFutureListener.CLOSE); } catch (Exception e) { e.printStackTrace(); final FullHttpResponse response = new DefaultFullHttpResponse(request.getProtocolVersion(), INTERNAL_SERVER_ERROR); chx.write(response).addListener(ChannelFutureListener.CLOSE); } } } else if (o instanceof HttpContent && request != null && request.getMethod() == HttpMethod.POST) { final HttpContent httpContent = (HttpContent) o; postRequestDecoder.offer(httpContent); if (o instanceof LastHttpContent && page != null) { try { FullHttpResponse response; if (headerVerifier != null && page instanceof AuthPage) { headerVerifier.checkSignature(postRequestDecoder, false); response = ((AuthPage) page).onPostRequest(request, postRequestDecoder, database, headerVerifier); } else response = page.onPostRequest(request, postRequestDecoder, database); HttpHeaders.setContentLength(response, response.content().readableBytes()); HttpHeaders.setHeader(response, CONTENT_TYPE, page.GetContentType()); if (isKeepAlive(request)) { HttpHeaders.setKeepAlive(response, true); chx.write(response); } else chx.write(response).addListener(ChannelFutureListener.CLOSE); } catch (ErrorException e) { e.printStackTrace(); final FullHttpResponse response = new DefaultFullHttpResponse(request.getProtocolVersion(), e.getStatus(), Unpooled.copiedBuffer(e.toString(), CharsetUtil.UTF_8)); HttpHeaders.setHeader(response, CONTENT_TYPE, Page.ContentTypes.JSON_TYPE); chx.write(response).addListener(ChannelFutureListener.CLOSE); } catch (Exception e) { e.printStackTrace(); final FullHttpResponse response = new DefaultFullHttpResponse(request.getProtocolVersion(), INTERNAL_SERVER_ERROR); chx.write(response).addListener(ChannelFutureListener.CLOSE); } } } if (o instanceof LastHttpContent && database != null) database.free(); }
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 a v a 2 s .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:net.mms_projects.copy_it.api.oauth.HeaderVerifierDatabaseTest.java
License:Open Source License
@Test(timeout = 1000) public void verifyConsumer() throws OAuthException, SQLException, OutOfConnectionsException, URISyntaxException { String header = "OAuth realm=\"\", " + "oauth_consumer_key=\"401a131e03357df2a563fba48f98749448ed63d37e007f7353608cf81fa70a2d\", " + "oauth_nonce=\"" + Utils.generateNonce() + "\", " + "oauth_timestamp=\"" + Long.toString(System.currentTimeMillis() / 1000) + "\", " + "oauth_signature_method=\"HMAC-SHA1\", " + "oauth_version=\"1.0\", " + "oauth_token=\"oauth_token\", " + "oauth_signature=\"CBTk%2FvzxEqqr0AvhnVgdWNHuKfw%3D\""; HttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "http://127.0.0.1:8080/"); request.headers().add(AUTHORIZATION, header); HeaderVerifier headerVerifier = new HeaderVerifier(request, new URI(request.getUri())); Database database = DatabasePool.getDBConnection(); headerVerifier.verifyConsumer(database); }
From source file:net.mms_projects.copy_it.api.oauth.HeaderVerifierDatabaseTest.java
License:Open Source License
@Test(expected = OAuthException.class, timeout = 1000) public void verifyInvalidConsumer() throws OAuthException, SQLException, OutOfConnectionsException, URISyntaxException { String header = "OAuth realm=\"\", " + "oauth_consumer_key=\"This is a totally invalid consumer key\", " + "oauth_nonce=\"" + Utils.generateNonce() + "\", " + "oauth_timestamp=\"" + Long.toString(System.currentTimeMillis() / 1000) + "\", " + "oauth_signature_method=\"HMAC-SHA1\", " + "oauth_version=\"1.0\", " + "oauth_token=\"oauth_token\", " + "oauth_signature=\"CBTk%2FvzxEqqr0AvhnVgdWNHuKfw%3D\""; HttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "http://127.0.0.1:8080/"); request.headers().add(AUTHORIZATION, header); HeaderVerifier headerVerifier = new HeaderVerifier(request, new URI(request.getUri())); Database database = DatabasePool.getDBConnection(); headerVerifier.verifyConsumer(database); }
From source file:net.mms_projects.copy_it.api.oauth.HeaderVerifierDatabaseTest.java
License:Open Source License
@Test(timeout = 1000) public void verifyUserToken() throws OAuthException, OutOfConnectionsException, SQLException, URISyntaxException { String header = "OAuth realm=\"\", " + "oauth_consumer_key=\"401a131e03357df2a563fba48f98749448ed63d37e007f7353608cf81fa70a2d\", " + "oauth_nonce=\"" + Utils.generateNonce() + "\", " + "oauth_timestamp=\"" + Long.toString(System.currentTimeMillis() / 1000) + "\", " + "oauth_signature_method=\"HMAC-SHA1\", " + "oauth_version=\"1.0\", " + "oauth_token=\"9476f5130a07a7c0061de48bc19123f51636af704c5df369701960e0bc151255\", " + "oauth_signature=\"CBTk%2FvzxEqqr0AvhnVgdWNHuKfw%3D\""; HttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "http://127.0.0.1:8080/"); request.headers().add(AUTHORIZATION, header); HeaderVerifier headerVerifier = new HeaderVerifier(request, new URI(request.getUri())); Database database = DatabasePool.getDBConnection(); headerVerifier.verifyConsumer(database); headerVerifier.verifyOAuthToken(database); }
From source file:net.mms_projects.copy_it.api.oauth.HeaderVerifierDatabaseTest.java
License:Open Source License
@Test(expected = OAuthException.class, timeout = 1000) public void verifyInvalidUserToken() throws OAuthException, OutOfConnectionsException, SQLException, URISyntaxException { String header = "OAuth realm=\"\", " + "oauth_consumer_key=\"401a131e03357df2a563fba48f98749448ed63d37e007f7353608cf81fa70a2d\", " + "oauth_nonce=\"" + Utils.generateNonce() + "\", " + "oauth_timestamp=\"" + Long.toString(System.currentTimeMillis() / 1000) + "\", " + "oauth_signature_method=\"HMAC-SHA1\", " + "oauth_version=\"1.0\", " + "oauth_token=\"oauth_token\", " + "oauth_signature=\"CBTk%2FvzxEqqr0AvhnVgdWNHuKfw%3D\""; HttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "http://127.0.0.1:8080/"); request.headers().add(AUTHORIZATION, header); HeaderVerifier headerVerifier = new HeaderVerifier(request, new URI(request.getUri())); Database database = DatabasePool.getDBConnection(); headerVerifier.verifyConsumer(database); headerVerifier.verifyOAuthToken(database); }