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:com.couchbase.client.core.endpoint.config.ConfigHandler.java

License:Apache License

@Override
protected HttpRequest encodeRequest(final ChannelHandlerContext ctx, final ConfigRequest msg) throws Exception {
    HttpMethod httpMethod = HttpMethod.GET;
    if (msg instanceof FlushRequest || msg instanceof InsertBucketRequest
            || msg instanceof UpdateBucketRequest) {
        httpMethod = HttpMethod.POST;/*from  w  w w  .j ava 2  s.  com*/
    } else if (msg instanceof RemoveBucketRequest) {
        httpMethod = HttpMethod.DELETE;
    }

    ByteBuf content;
    if (msg instanceof InsertBucketRequest) {
        content = Unpooled.copiedBuffer(((InsertBucketRequest) msg).payload(), CharsetUtil.UTF_8);
    } else if (msg instanceof UpdateBucketRequest) {
        content = Unpooled.copiedBuffer(((UpdateBucketRequest) msg).payload(), CharsetUtil.UTF_8);
    } else {
        content = Unpooled.EMPTY_BUFFER;
    }

    FullHttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, httpMethod, msg.path(), content);
    request.headers().set(HttpHeaders.Names.USER_AGENT, env().userAgent());
    if (msg instanceof InsertBucketRequest || msg instanceof UpdateBucketRequest) {
        request.headers().set(HttpHeaders.Names.ACCEPT, "*/*");
        request.headers().set(HttpHeaders.Names.CONTENT_TYPE, "application/x-www-form-urlencoded");
    }
    request.headers().set(HttpHeaders.Names.CONTENT_LENGTH, content.readableBytes());
    request.headers().set(HttpHeaders.Names.HOST, remoteHttpHost(ctx));

    addHttpBasicAuth(ctx, request, msg.bucket(), msg.password());
    return request;
}

From source file:com.couchbase.client.core.endpoint.config.ConfigHandlerTest.java

License:Apache License

@Test
public void shouldEncodeBucketConfigRequest() throws Exception {
    BucketConfigRequest request = new BucketConfigRequest("/path/", InetAddress.getLocalHost(), "bucket",
            "password");

    channel.writeOutbound(request);//from ww  w .j a  v a  2 s .  c om
    HttpRequest outbound = (HttpRequest) channel.readOutbound();

    assertEquals(HttpMethod.GET, outbound.getMethod());
    assertEquals(HttpVersion.HTTP_1_1, outbound.getProtocolVersion());
    assertEquals("/path/bucket", outbound.getUri());
    assertTrue(outbound.headers().contains(HttpHeaders.Names.AUTHORIZATION));
    assertTrue(outbound.headers().contains(HttpHeaders.Names.HOST));
    assertEquals("Basic YnVja2V0OnBhc3N3b3Jk", outbound.headers().get(HttpHeaders.Names.AUTHORIZATION));
    assertEquals("Couchbase Client Mock", outbound.headers().get(HttpHeaders.Names.USER_AGENT));
}

From source file:com.couchbase.client.core.endpoint.config.ConfigHandlerTest.java

License:Apache License

@Test
public void shouldEncodeBucketStreamingRequest() throws Exception {
    BucketStreamingRequest request = new BucketStreamingRequest("/path/", "bucket", "password");

    channel.writeOutbound(request);/* ww  w  . ja va  2  s  . c o m*/
    HttpRequest outbound = (HttpRequest) channel.readOutbound();

    assertEquals(HttpMethod.GET, outbound.getMethod());
    assertEquals(HttpVersion.HTTP_1_1, outbound.getProtocolVersion());
    assertEquals("/path/bucket", outbound.getUri());
    assertTrue(outbound.headers().contains(HttpHeaders.Names.AUTHORIZATION));
    assertEquals("Basic YnVja2V0OnBhc3N3b3Jk", outbound.headers().get(HttpHeaders.Names.AUTHORIZATION));
    assertEquals("Couchbase Client Mock", outbound.headers().get(HttpHeaders.Names.USER_AGENT));
}

From source file:com.couchbase.client.core.endpoint.config.ConfigHandlerTest.java

License:Apache License

@Test
public void shouldNotBreakLinesOnLongAuth() throws Exception {
    String longPassword = "thisIsAveryLongPasswordWhichShouldNotContainLineBreaksAfterEncodingOtherwise"
            + "itWillBreakTheRequestResponseFlowWithTheServer";
    BucketConfigRequest request = new BucketConfigRequest("/path/", InetAddress.getLocalHost(), "bucket",
            longPassword);//  w  w  w. ja  v a 2  s  .  c om

    channel.writeOutbound(request);
    HttpRequest outbound = (HttpRequest) channel.readOutbound();

    assertEquals(HttpMethod.GET, outbound.getMethod());
    assertEquals(HttpVersion.HTTP_1_1, outbound.getProtocolVersion());
    assertEquals("/path/bucket", outbound.getUri());
    assertTrue(outbound.headers().contains(HttpHeaders.Names.AUTHORIZATION));
    assertNotNull(outbound.headers().get(HttpHeaders.Names.AUTHORIZATION));
    assertTrue(outbound.headers().contains(HttpHeaders.Names.HOST));
    assertEquals("Couchbase Client Mock", outbound.headers().get(HttpHeaders.Names.USER_AGENT));
}

From source file:com.couchbase.client.core.endpoint.query.QueryHandler.java

License:Apache License

@Override
protected HttpRequest encodeRequest(final ChannelHandlerContext ctx, final QueryRequest msg) throws Exception {
    FullHttpRequest request;/*from www .  j a  v  a2s.c  o m*/

    if (msg instanceof GenericQueryRequest) {
        GenericQueryRequest queryRequest = (GenericQueryRequest) msg;
        request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.POST, "/query");
        request.headers().set(HttpHeaders.Names.USER_AGENT, env().userAgent());
        if (queryRequest.isJsonFormat()) {
            request.headers().set(HttpHeaders.Names.CONTENT_TYPE, "application/json");
        }
        ByteBuf query = ctx.alloc().buffer(((GenericQueryRequest) msg).query().length());
        query.writeBytes(((GenericQueryRequest) msg).query().getBytes(CHARSET));
        request.headers().add(HttpHeaders.Names.CONTENT_LENGTH, query.readableBytes());
        request.headers().set(HttpHeaders.Names.HOST, remoteHttpHost(ctx));
        request.content().writeBytes(query);
        query.release();
    } else if (msg instanceof KeepAliveRequest) {
        request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "/admin/ping");
        request.headers().set(HttpHeaders.Names.USER_AGENT, env().userAgent());
        request.headers().set(HttpHeaders.Names.HOST, remoteHttpHost(ctx));
        return request;
    } else {
        throw new IllegalArgumentException("Unknown incoming QueryRequest type " + msg.getClass());
    }

    addHttpBasicAuth(ctx, request, msg.bucket(), msg.password());
    return request;
}

From source file:com.couchbase.client.core.endpoint.search.SearchHandler.java

License:Apache License

@Override
protected HttpRequest encodeRequest(ChannelHandlerContext ctx, SearchRequest msg) throws Exception {
    HttpMethod httpMethod = HttpMethod.GET;
    if (msg instanceof UpsertSearchIndexRequest) {
        httpMethod = HttpMethod.PUT;//from w  w  w .  jav a2s  .  c  o  m
    } else if (msg instanceof RemoveSearchIndexRequest) {
        httpMethod = HttpMethod.DELETE;
    } else if (msg instanceof SearchQueryRequest) {
        httpMethod = HttpMethod.POST;
    }

    ByteBuf content;
    if (msg instanceof UpsertSearchIndexRequest) {
        content = Unpooled.copiedBuffer(((UpsertSearchIndexRequest) msg).payload(), CharsetUtil.UTF_8);
    } else if (msg instanceof SearchQueryRequest) {
        content = Unpooled.copiedBuffer(((SearchQueryRequest) msg).payload(), CharsetUtil.UTF_8);
    } else {
        content = Unpooled.EMPTY_BUFFER;
    }

    FullHttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, httpMethod, msg.path(), content);
    request.headers().set(HttpHeaders.Names.USER_AGENT, env().userAgent());
    if (msg instanceof UpsertSearchIndexRequest || msg instanceof SearchQueryRequest) {
        request.headers().set(HttpHeaders.Names.ACCEPT, "*/*");
        request.headers().set(HttpHeaders.Names.CONTENT_TYPE, "application/json");
    }
    request.headers().set(HttpHeaders.Names.CONTENT_LENGTH, content.readableBytes());
    request.headers().set(HttpHeaders.Names.HOST, remoteHttpHost(ctx));

    addHttpBasicAuth(ctx, request, msg.bucket(), msg.password());
    return request;
}

From source file:com.couchbase.client.core.endpoint.view.ViewCodec.java

License:Open Source License

private HttpRequest handleViewQueryRequest(final ViewQueryRequest msg) {
    StringBuilder requestBuilder = new StringBuilder();
    requestBuilder.append("/").append(msg.bucket()).append("/_design/");
    requestBuilder.append(msg.development() ? "dev_" + msg.design() : msg.design());
    requestBuilder.append("/_view/").append(msg.view());
    if (msg.query() != null && !msg.query().isEmpty()) {
        requestBuilder.append("?").append(msg.query());
    }//from   www  .ja v  a 2s . co m
    return new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, requestBuilder.toString());
}

From source file:com.couchbase.client.core.endpoint.view.ViewHandler.java

License:Apache License

@Override
protected HttpRequest encodeRequest(final ChannelHandlerContext ctx, final ViewRequest msg) throws Exception {
    if (msg instanceof KeepAliveRequest) {
        FullHttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.HEAD, "/",
                Unpooled.EMPTY_BUFFER);//from w  w w  .  j a  v  a  2 s  .com
        request.headers().set(HttpHeaders.Names.USER_AGENT, env().userAgent());
        request.headers().set(HttpHeaders.Names.CONTENT_LENGTH, 0);
        return request;
    }

    StringBuilder path = new StringBuilder();

    HttpMethod method = HttpMethod.GET;
    ByteBuf content = null;
    if (msg instanceof ViewQueryRequest) {
        ViewQueryRequest queryMsg = (ViewQueryRequest) msg;
        path.append("/").append(msg.bucket()).append("/_design/");
        path.append(queryMsg.development() ? "dev_" + queryMsg.design() : queryMsg.design());
        if (queryMsg.spatial()) {
            path.append("/_spatial/");
        } else {
            path.append("/_view/");
        }
        path.append(queryMsg.view());

        int queryLength = queryMsg.query() == null ? 0 : queryMsg.query().length();
        int keysLength = queryMsg.keys() == null ? 0 : queryMsg.keys().length();
        boolean hasQuery = queryLength > 0;
        boolean hasKeys = keysLength > 0;

        if (hasQuery || hasKeys) {
            if (queryLength + keysLength < MAX_GET_LENGTH) {
                //the query is short enough for GET
                //it has query, query+keys or keys only
                if (hasQuery) {
                    path.append("?").append(queryMsg.query());
                    if (hasKeys) {
                        path.append("&keys=").append(encodeKeysGet(queryMsg.keys()));
                    }
                } else {
                    //it surely has keys if not query
                    path.append("?keys=").append(encodeKeysGet(queryMsg.keys()));
                }
            } else {
                //the query is too long for GET, use the keys as JSON body
                if (hasQuery) {
                    path.append("?").append(queryMsg.query());
                }
                String keysContent = encodeKeysPost(queryMsg.keys());

                //switch to POST
                method = HttpMethod.POST;
                //body is "keys" but in JSON
                content = ctx.alloc().buffer(keysContent.length());
                content.writeBytes(keysContent.getBytes(CHARSET));
            }
        }
    } else if (msg instanceof GetDesignDocumentRequest) {
        GetDesignDocumentRequest queryMsg = (GetDesignDocumentRequest) msg;
        path.append("/").append(msg.bucket()).append("/_design/");
        path.append(queryMsg.development() ? "dev_" + queryMsg.name() : queryMsg.name());
    } else if (msg instanceof UpsertDesignDocumentRequest) {
        method = HttpMethod.PUT;
        UpsertDesignDocumentRequest queryMsg = (UpsertDesignDocumentRequest) msg;
        path.append("/").append(msg.bucket()).append("/_design/");
        path.append(queryMsg.development() ? "dev_" + queryMsg.name() : queryMsg.name());
        content = Unpooled.copiedBuffer(queryMsg.body(), CHARSET);
    } else if (msg instanceof RemoveDesignDocumentRequest) {
        method = HttpMethod.DELETE;
        RemoveDesignDocumentRequest queryMsg = (RemoveDesignDocumentRequest) msg;
        path.append("/").append(msg.bucket()).append("/_design/");
        path.append(queryMsg.development() ? "dev_" + queryMsg.name() : queryMsg.name());
    } else {
        throw new IllegalArgumentException("Unknown incoming ViewRequest type " + msg.getClass());
    }

    if (content == null) {
        content = Unpooled.buffer(0);
    }
    FullHttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, method, path.toString(),
            content);
    request.headers().set(HttpHeaders.Names.USER_AGENT, env().userAgent());
    request.headers().set(HttpHeaders.Names.CONTENT_LENGTH, content.readableBytes());
    request.headers().set(HttpHeaders.Names.CONTENT_TYPE, "application/json");
    request.headers().set(HttpHeaders.Names.HOST, remoteHttpHost(ctx));
    addHttpBasicAuth(ctx, request, msg.bucket(), msg.password());

    return request;
}

From source file:com.couchbase.client.core.endpoint.view.ViewHandlerTest.java

License:Apache License

@Test
public void shouldEncodeGetDesignDocumentRequest() {
    GetDesignDocumentRequest request = new GetDesignDocumentRequest("name", true, "bucket", "password");

    channel.writeOutbound(request);/*from  w ww .j a  v  a  2s .  c o m*/
    HttpRequest outbound = (HttpRequest) channel.readOutbound();

    assertEquals(HttpMethod.GET, outbound.getMethod());
    assertEquals(HttpVersion.HTTP_1_1, outbound.getProtocolVersion());
    assertEquals("/bucket/_design/dev_name", outbound.getUri());
    assertTrue(outbound.headers().contains(HttpHeaders.Names.AUTHORIZATION));
    assertEquals("Couchbase Client Mock", outbound.headers().get(HttpHeaders.Names.USER_AGENT));
    assertTrue(outbound.headers().contains(HttpHeaders.Names.HOST));
    ReferenceCountUtil.releaseLater(outbound); //for consistency, but it uses Unpooled
}

From source file:com.couchbase.client.core.endpoint.view.ViewHandlerTest.java

License:Apache License

@Test
public void shouldEncodeViewQueryRequest() {
    ViewQueryRequest request = new ViewQueryRequest("design", "view", true, "query", null, "bucket",
            "password");

    channel.writeOutbound(request);/*from w  w  w.ja v a2s . c  o  m*/
    HttpRequest outbound = (HttpRequest) channel.readOutbound();

    assertEquals(HttpMethod.GET, outbound.getMethod());
    assertEquals(HttpVersion.HTTP_1_1, outbound.getProtocolVersion());
    assertEquals("/bucket/_design/dev_design/_view/view?query", outbound.getUri());
    assertTrue(outbound.headers().contains(HttpHeaders.Names.AUTHORIZATION));
    assertEquals("Couchbase Client Mock", outbound.headers().get(HttpHeaders.Names.USER_AGENT));
    ReferenceCountUtil.releaseLater(outbound); //for consistency, but it uses Unpooled
}