Example usage for io.netty.handler.codec.http HttpMethod GET

List of usage examples for io.netty.handler.codec.http HttpMethod GET

Introduction

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

Prototype

HttpMethod GET

To view the source code for io.netty.handler.codec.http HttpMethod GET.

Click Source Link

Document

The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI.

Usage

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