Example usage for io.netty.handler.codec.http DefaultFullHttpRequest content

List of usage examples for io.netty.handler.codec.http DefaultFullHttpRequest content

Introduction

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

Prototype

ByteBuf content

To view the source code for io.netty.handler.codec.http DefaultFullHttpRequest content.

Click Source Link

Usage

From source file:com.buildria.mocking.stub.CallTest.java

License:Open Source License

@Test
public void testFromRequest() throws Exception {
    DefaultFullHttpRequest req = mock(DefaultFullHttpRequest.class);

    when(req.getUri()).thenReturn("/api/p?name=%E3%81%82");
    when(req.getMethod()).thenReturn(GET);

    HttpHeaders headers = new DefaultHttpHeaders();
    headers.add("key", "value1");
    headers.add("key", "value2");
    when(req.headers()).thenReturn(headers);

    ByteBuf buf = ByteBufAllocator.DEFAULT.buffer();
    buf.writeByte((byte) 0xff);
    when(req.content()).thenReturn(buf);

    Call call = Call.fromRequest(req);/*from ww w.j a va 2 s .  c  o m*/

    assertThat(call.getPath(), is("/api/p"));
    assertThat(call.getParameters().size(), is(1));
    assertThat(call.getParameters().get(0).getName(), is("name"));
    assertThat(call.getParameters().get(0).getValue(), is("\u3042"));
    assertThat(call.getMethod(), is(equalToIgnoringCase("GET")));
    assertThat(call.getHeaders(), hasSize(2));
    assertThat(call.getHeaders().get(0).getName(), is("key"));
    assertThat(call.getHeaders().get(0).getValue(), is("value1"));
    assertThat(call.getHeaders().get(1).getName(), is("key"));
    assertThat(call.getHeaders().get(1).getValue(), is("value2"));
    assertThat(call.getBody()[0], is((byte) 0xff));
}

From source file:com.buildria.mocking.stub.CallTest.java

License:Open Source License

@Test
public void testFromRequestContentEmpty() throws Exception {
    DefaultFullHttpRequest req = mock(DefaultFullHttpRequest.class);

    when(req.getUri()).thenReturn("/api/p?name=%E3%81%82");
    when(req.getMethod()).thenReturn(GET);

    HttpHeaders headers = new DefaultHttpHeaders();
    headers.add("key", "value");
    when(req.headers()).thenReturn(headers);
    when(req.content()).thenReturn(null);

    Call call = Call.fromRequest(req);/*from ww  w.  j  ava  2 s .  c om*/

    assertThat(call.getBody().length, is(0));
}

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

License:Apache License

@Test
public void shouldEncodeLongViewQueryRequestWithPOST() {
    String keys = Resources.read("key_many.json", this.getClass());
    String query = "stale=false&endKey=test";
    ViewQueryRequest request = new ViewQueryRequest("design", "view", true, query, keys, "bucket", "password");
    channel.writeOutbound(request);/*from   ww w .j  av  a2  s.c o  m*/
    DefaultFullHttpRequest outbound = (DefaultFullHttpRequest) channel.readOutbound();
    assertEquals(HttpMethod.POST, outbound.getMethod());
    assertFalse(outbound.getUri().contains("keys="));
    assertTrue(outbound.getUri().endsWith("?stale=false&endKey=test"));
    String content = outbound.content().toString(CharsetUtil.UTF_8);
    assertTrue(content.startsWith("{\"keys\":["));
    assertTrue(content.endsWith("]}"));
    ReferenceCountUtil.releaseLater(outbound);
}

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

License:Apache License

@Test
public void shouldUrlEncodeShortKeys() {
    String urlEncodedKeys = "%5B%221%22%2C%222%22%2C%223%22%5D";
    String keys = "[\"1\",\"2\",\"3\"]";
    String query = "stale=false&endKey=test";
    ViewQueryRequest request = new ViewQueryRequest("design", "view", true, query, keys, "bucket", "password");
    channel.writeOutbound(request);//from   w  w  w .  j av  a 2s  .c o  m
    DefaultFullHttpRequest outbound = (DefaultFullHttpRequest) channel.readOutbound();
    String failMsg = outbound.getUri();
    assertEquals(HttpMethod.GET, outbound.getMethod());
    assertTrue(failMsg, outbound.getUri().contains("keys="));
    assertTrue(failMsg, outbound.getUri().endsWith("?stale=false&endKey=test&keys=" + urlEncodedKeys));
    String content = outbound.content().toString(CharsetUtil.UTF_8);
    assertTrue(content.isEmpty());
    ReferenceCountUtil.releaseLater(outbound); //NO-OP since content is empty but still...
}

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

License:Apache License

@Test
public void shouldProduceValidUrlIfShortKeysAndNoOtherQueryParam() {
    String urlEncodedKeys = "%5B%221%22%2C%222%22%2C%223%22%5D";
    String keys = "[\"1\",\"2\",\"3\"]";
    String query = "";
    ViewQueryRequest request = new ViewQueryRequest("design", "view", true, query, keys, "bucket", "password");
    channel.writeOutbound(request);//w w w.j a  v a 2  s.  c o m
    DefaultFullHttpRequest outbound = (DefaultFullHttpRequest) channel.readOutbound();
    String failMsg = outbound.getUri();
    assertEquals(HttpMethod.GET, outbound.getMethod());
    assertTrue(failMsg, outbound.getUri().endsWith("?keys=" + urlEncodedKeys));
    String content = outbound.content().toString(CharsetUtil.UTF_8);
    assertTrue(content.isEmpty());
    ReferenceCountUtil.releaseLater(outbound); //NO-OP since content is empty but still...
}

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

License:Apache License

@Test
public void shouldDoNothingOnNullKeys() {
    String keys = null;/*from  ww w  .j a  v a  2s.c o m*/
    String query = "stale=false&endKey=test";
    ViewQueryRequest request = new ViewQueryRequest("design", "view", true, query, keys, "bucket", "password");
    channel.writeOutbound(request);
    DefaultFullHttpRequest outbound = (DefaultFullHttpRequest) channel.readOutbound();
    assertEquals(HttpMethod.GET, outbound.getMethod());
    assertFalse(outbound.getUri().contains("keys="));
    assertTrue(outbound.getUri().endsWith("?stale=false&endKey=test"));
    String content = outbound.content().toString(CharsetUtil.UTF_8);
    assertTrue(content.isEmpty());
    ReferenceCountUtil.releaseLater(outbound); //NO-OP since content is empty but still...
}

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

License:Apache License

@Test
public void shouldDoNothingOnEmptyKeys() {
    String keys = "";
    String query = "stale=false&endKey=test";
    ViewQueryRequest request = new ViewQueryRequest("design", "view", true, query, keys, "bucket", "password");
    channel.writeOutbound(request);//w w  w .j a v a2  s.c  om
    DefaultFullHttpRequest outbound = (DefaultFullHttpRequest) channel.readOutbound();
    assertEquals(HttpMethod.GET, outbound.getMethod());
    assertFalse(outbound.getUri().contains("keys="));
    assertTrue(outbound.getUri().endsWith("?stale=false&endKey=test"));
    String content = outbound.content().toString(CharsetUtil.UTF_8);
    assertTrue(content.isEmpty());
    ReferenceCountUtil.releaseLater(outbound); //NO-OP since content is empty but still...
}

From source file:com.rackspacecloud.blueflood.inputs.handlers.HttpEventsIngestionHandlerTest.java

License:Apache License

private FullHttpRequest createRequest(HttpMethod method, String uri, String requestBody) {
    DefaultFullHttpRequest rawRequest = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, method,
            "/v2.0/" + TENANT + "/events/" + uri);
    rawRequest.headers().set("tenantId", TENANT);
    if (!requestBody.equals(""))
        rawRequest.content().writeBytes(Unpooled.copiedBuffer(requestBody.getBytes()));
    return HttpRequestWithDecodedQueryParams.create(rawRequest);
}

From source file:com.seagate.kinetic.client.io.provider.nio.http.HttpTransportProvider.java

License:Open Source License

/**
 * {@inheritDoc}/*w w w  .  j  ava2  s . co m*/
 */
@Override
public void write(KineticMessage km) throws IOException {

    // interface message
    Message.Builder message = (Builder) km.getMessage();

    // extended message
    ExtendedMessage.Builder extendedMessage = ExtendedMessage.newBuilder();

    // set interface message
    extendedMessage.setInterfaceMessage(message);

    // set optional value
    if (km.getValue() != null) {
        extendedMessage.setValue(ByteString.copyFrom(km.getValue()));
    }

    // get serialized bytes
    byte[] array = extendedMessage.build().toByteArray();

    // Prepare the HTTP request.
    DefaultFullHttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.POST,
            "/kinetic", Unpooled.copiedBuffer(array));

    request.headers().set(HttpHeaders.Names.HOST, host);

    request.headers().set(HttpHeaders.Names.ACCEPT_ENCODING, HttpHeaders.Values.BINARY);

    request.headers().set(HttpHeaders.Names.ACCEPT_ENCODING, HttpHeaders.Values.GZIP);

    request.headers().set(CONNECTION, Values.KEEP_ALIVE);

    request.headers().set(CONTENT_TYPE, "application/octet-stream");

    request.headers().set(HttpHeaders.Names.CONTENT_ENCODING, HttpHeaders.Values.BINARY);

    request.headers().set(HttpHeaders.Names.CONTENT_LENGTH, request.content().readableBytes());

    if (logger.isLoggable(Level.INFO)) {
        logger.info("writing http message, len=" + request.content().readableBytes());
    }

    try {
        this.channel.writeAndFlush(request);
    } finally {
        // request.release();
    }
}

From source file:com.titilink.camel.rest.server.RestletServerHelper.java

License:LGPL

public void handle(ServerCall httpCall) {
    LOGGER.debug("handle httpCall begin.");

    try {//from ww  w .  ja v a  2 s. co m
        // ----------- netty to restlet ? ?  --------------------
        RestletServerCall retHttpCall = (RestletServerCall) httpCall;
        //HttpCallHTTPheader?requestgetProtocolorg.restlet.Request.getProtocol()Protocolurlscheme?HTTP Protocol 1.1
        HttpRequest restletRequest = getAdapter().toRequest(httpCall);
        restletRequest.setProtocol(httpCall.getProtocol());

        DefaultFullHttpRequest nettyRequest = (DefaultFullHttpRequest) ((RestletServerCall) httpCall)
                .getRequest();
        nettyRequest.content();
        // ----------- netty to restlet ? ?  ?--------------------

        HttpResponse response = new HttpResponse(httpCall, restletRequest);
        LOGGER.debug("before handle request by restlet");
        handle(restletRequest, response);
        LOGGER.debug("after handle request by restlet");
        //?responseHttpCoreHttpResponse?
        Representation represent = response.getEntity();
        ByteBuf buf = transferBuffer(represent);
        FullHttpResponse nettyResponse = new DefaultFullHttpResponse(
                retHttpCall.getRequest().getProtocolVersion(),
                HttpResponseStatus.valueOf(response.getStatus().getCode()));

        //Copy??
        AdapterRestletUtil.parseToNettyFullResponse(retHttpCall, response, nettyResponse);
        if (null != buf) {
            nettyResponse.content().writeBytes(buf);
            buf.release();
        } else {
            LOGGER.error("buf onf content is null.");
        }

        nettyResponse.headers().set(CONTENT_TYPE, MediaType.APPLICATION_JSON);
        nettyResponse.headers().set(CONTENT_LENGTH, nettyResponse.content().readableBytes());

        if (null != retHttpCall.getCtx()) {
            final Channel channel = retHttpCall.getCtx().channel();
            if (channel != null) {
                if (channel.isActive()) {
                    channel.writeAndFlush(nettyResponse);
                } else {
                    LOGGER.error("channel not active,close it.");
                    channel.close();
                }
            } else {
                LOGGER.error("Write to channel failed, invalid channel");
            }
        } else {
            LOGGER.error("retHttpCall.getCtx() is null.");
        }
    } catch (Throwable e) {
        LOGGER.error("Exception while handle request:", e);
        if (httpCall instanceof RestletServerCall) {
            RestletServerCall retHttpCall = (RestletServerCall) httpCall;
            if (retHttpCall.getCtx() != null) {
                final Channel channel = retHttpCall.getCtx().channel();
                if (channel != null) {
                    LOGGER.error("Close channel.");
                    channel.close();
                }
            }
        }
    } finally {
        LOGGER.debug("handle httpCall end.");
        Engine.clearThreadLocalVariables();
    }
}