Java 类io.netty.handler.codec.http.DefaultFullHttpRequest 实例源码

项目:nitmproxy    文件:Http1BackendHandlerTest.java   
@Test
public void shouldHandlerRequestAndResponse() {
    inboundChannel.pipeline().addLast(handler);

    DefaultFullHttpRequest req = new DefaultFullHttpRequest(
            HttpVersion.HTTP_1_1, HttpMethod.GET, "/");
    inboundChannel.write(req);

    assertEquals(1, inboundChannel.outboundMessages().size());

    Object outboundReq = inboundChannel.outboundMessages().poll();
    assertTrue(outboundReq instanceof ByteBuf);
    assertEquals("GET / HTTP/1.1\r\n\r\n", new String(readBytes((ByteBuf) outboundReq)));

    DefaultFullHttpResponse resp = new DefaultFullHttpResponse(
            HttpVersion.HTTP_1_1, HttpResponseStatus.OK);
    assertFalse(inboundChannel.writeInbound(resp));

    assertEquals(1, outboundChannel.outboundMessages().size());
    assertEquals(resp, outboundChannel.outboundMessages().poll());

    resp.release();
}
项目:nitmproxy    文件:Http1BackendHandlerTest.java   
@Test
public void shouldPendingRequests() {
    inboundChannel.pipeline().addLast(handler);

    DefaultFullHttpRequest req = new DefaultFullHttpRequest(
            HttpVersion.HTTP_1_1, HttpMethod.GET, "/");
    // First request
    inboundChannel.write(req.retain());

    assertEquals(1, inboundChannel.outboundMessages().size());
    assertTrue(inboundChannel.outboundMessages().poll() instanceof ByteBuf);

    // Second request
    inboundChannel.write(req);

    // Should pending second request
    assertTrue(inboundChannel.outboundMessages().isEmpty());
}
项目:nitmproxy    文件:Http1BackendHandlerTest.java   
@Test
public void shouldClearPendingRequests() {
    inboundChannel.pipeline().addLast(handler);

    DefaultFullHttpRequest req = new DefaultFullHttpRequest(
            HttpVersion.HTTP_1_1, HttpMethod.GET, "/");
    // First request
    inboundChannel.write(req.retain());

    assertEquals(1, req.refCnt());
    assertEquals(1, inboundChannel.outboundMessages().size());
    assertTrue(inboundChannel.outboundMessages().poll() instanceof ByteBuf);

    // Second request
    inboundChannel.write(req);

    assertEquals(1, req.refCnt());
    assertTrue(inboundChannel.outboundMessages().isEmpty());

    inboundChannel.close();

    assertEquals(0, req.refCnt());
}
项目:elasticsearch_my    文件:Netty4HttpChannelTests.java   
public void testReleaseOnSendToClosedChannel() {
    final Settings settings = Settings.builder().build();
    final NamedXContentRegistry registry = xContentRegistry();
    try (Netty4HttpServerTransport httpServerTransport =
                 new Netty4HttpServerTransport(settings, networkService, bigArrays, threadPool, registry, new NullDispatcher())) {
        final FullHttpRequest httpRequest = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "/");
        final EmbeddedChannel embeddedChannel = new EmbeddedChannel();
        final Netty4HttpRequest request = new Netty4HttpRequest(registry, httpRequest, embeddedChannel);
        final HttpPipelinedRequest pipelinedRequest = randomBoolean() ? new HttpPipelinedRequest(request.request(), 1) : null;
        final Netty4HttpChannel channel =
                new Netty4HttpChannel(httpServerTransport, request, pipelinedRequest, randomBoolean(), threadPool.getThreadContext());
        final TestResponse response = new TestResponse(bigArrays);
        assertThat(response.content(), instanceOf(Releasable.class));
        embeddedChannel.close();
        channel.sendResponse(response);
        // ESTestCase#after will invoke ensureAllArraysAreReleased which will fail if the response content was not released
    }
}
项目:elasticsearch_my    文件:Netty4HttpChannelTests.java   
private FullHttpResponse executeRequest(final Settings settings, final String originValue, final String host) {
    // construct request and send it over the transport layer
    try (Netty4HttpServerTransport httpServerTransport =
                 new Netty4HttpServerTransport(settings, networkService, bigArrays, threadPool, xContentRegistry(),
                         new NullDispatcher())) {
        httpServerTransport.start();
        final FullHttpRequest httpRequest = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "/");
        if (originValue != null) {
            httpRequest.headers().add(HttpHeaderNames.ORIGIN, originValue);
        }
        httpRequest.headers().add(HttpHeaderNames.HOST, host);
        final WriteCapturingChannel writeCapturingChannel = new WriteCapturingChannel();
        final Netty4HttpRequest request = new Netty4HttpRequest(xContentRegistry(), httpRequest, writeCapturingChannel);

        Netty4HttpChannel channel =
                new Netty4HttpChannel(httpServerTransport, request, null, randomBoolean(), threadPool.getThreadContext());
        channel.sendResponse(new TestResponse());

        // get the response
        List<Object> writtenObjects = writeCapturingChannel.getWrittenObjects();
        assertThat(writtenObjects.size(), is(1));
        return (FullHttpResponse) writtenObjects.get(0);
    }
}
项目:qonduit    文件:BasicAuthLoginRequestHandlerTest.java   
@Test
public void testBasicAuthenticationFailure() throws Exception {
    Configuration config = TestConfiguration.createMinimalConfigurationForTest();

    BasicAuthLogin auth = new BasicAuthLogin();
    auth.setUsername("test");
    auth.setPassword("test2");
    DefaultFullHttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.POST, "/login");
    request.content().writeBytes(JsonSerializer.getObjectMapper().writeValueAsBytes(auth));

    TestHttpQueryDecoder decoder = new TestHttpQueryDecoder(config);
    decoder.decode(null, request, results);
    Assert.assertEquals(1, results.size());
    Object result = results.iterator().next();
    Assert.assertEquals(BasicAuthLoginRequest.class, result.getClass());

    BasicAuthLoginRequestHandler handler = new BasicAuthLoginRequestHandler(config);
    CaptureChannelHandlerContext ctx = new CaptureChannelHandlerContext();
    handler.channelRead(ctx, result);
    Assert.assertNotNull(ctx.msg);
    Assert.assertTrue(ctx.msg instanceof DefaultFullHttpResponse);
    DefaultFullHttpResponse response = (DefaultFullHttpResponse) ctx.msg;
    Assert.assertEquals(HttpResponseStatus.UNAUTHORIZED, response.getStatus());
    Assert.assertTrue(response.headers().contains(Names.CONTENT_TYPE));
    Assert.assertEquals(Constants.JSON_TYPE, response.headers().get(Names.CONTENT_TYPE));
}
项目:ServiceCOLDCache    文件:NettyRequestProxyFilterTest.java   
@Test
public void testIsProxyRequest() throws IOException{
    AppConfiguration appConfig = new AppConfiguration(new ConfigLoader(),
            null);
    appConfig.init();
    PolicyManager policyManager = mock(PolicyManager.class);
    NettyRequestProxyFilter filter = new NettyRequestProxyFilter(
            policyManager, appConfig);

    DefaultFullHttpRequest req = new DefaultFullHttpRequest(
            HttpVersion.HTTP_1_1, HttpMethod.GET, "/version");
    assertTrue(filter.isProxyRequest(req));
    assertRequest(filter, req, false, "localhost:32876");
    assertRequest(filter, req, false, "127.0.0.1:32876");
    assertRequest(filter, req, true, "localhost:32877");
    assertRequest(filter, req, true, "localhost");
    assertRequest(filter, req, true, "127.0.0.1");
    assertRequest(filter, req, true, "trace.vip.ebay.com");
    assertRequest(filter, req, true, "");
}
项目:aliyun-oss-hadoop-fs    文件:TestDtpHttp2.java   
@Test
public void test() throws InterruptedException, ExecutionException {
  int streamId = 3;
  FullHttpRequest request =
      new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "/");
  request.headers().add(HttpUtil.ExtensionHeaderNames.STREAM_ID.text(),
    streamId);
  Promise<FullHttpResponse> promise = CHANNEL.eventLoop().newPromise();
  synchronized (RESPONSE_HANDLER) {
    CHANNEL.writeAndFlush(request);
    RESPONSE_HANDLER.put(streamId, promise);
  }
  assertEquals(HttpResponseStatus.OK, promise.get().status());
  ByteBuf content = promise.get().content();
  assertEquals("HTTP/2 DTP", content.toString(StandardCharsets.UTF_8));
}
项目:spring4-understanding    文件:Netty4ClientHttpRequest.java   
private FullHttpRequest createFullHttpRequest(HttpHeaders headers) {
    io.netty.handler.codec.http.HttpMethod nettyMethod =
            io.netty.handler.codec.http.HttpMethod.valueOf(this.method.name());

    FullHttpRequest nettyRequest = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1,
            nettyMethod, this.uri.toString(), this.body.buffer());

    nettyRequest.headers().set(HttpHeaders.HOST, uri.getHost());
    nettyRequest.headers().set(HttpHeaders.CONNECTION, io.netty.handler.codec.http.HttpHeaders.Values.CLOSE);

    for (Map.Entry<String, List<String>> entry : headers.entrySet()) {
        nettyRequest.headers().add(entry.getKey(), entry.getValue());
    }

    return nettyRequest;
}
项目:timely    文件:HttpRequestDecoderTest.java   
@Test
public void testLookupPostWithNoLimit() throws Exception {
    // @formatter:off
    String content = 
    "{\n" +
    "    \"metric\": \"sys.cpu.user\"\n" + 
    "}";
    // @formatter:on
    decoder = new TestHttpQueryDecoder(config);
    DefaultFullHttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.POST,
            "/api/search/lookup");
    request.content().writeBytes(content.getBytes());
    addCookie(request);
    decoder.decode(null, request, results);
    Assert.assertEquals(1, results.size());
    Assert.assertEquals(SearchLookupRequest.class, results.iterator().next().getClass());
    SearchLookupRequest lookup = (SearchLookupRequest) results.iterator().next();
    Assert.assertEquals("sys.cpu.user", lookup.getQuery());
    Assert.assertEquals(25, lookup.getLimit());
    Assert.assertEquals(0, lookup.getTags().size());
}
项目:timely    文件:HttpRequestDecoderTest.java   
@Test
public void testLookupPostWithLimit() throws Exception {
    // @formatter:off
    String content = 
    "{\n" +
    "    \"metric\": \"sys.cpu.user\",\n" +
    "    \"limit\": 3000\n" +
    "}";
    // @formatter:on
    decoder = new TestHttpQueryDecoder(config);
    DefaultFullHttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.POST,
            "/api/search/lookup");
    request.content().writeBytes(content.getBytes());
    addCookie(request);
    decoder.decode(null, request, results);
    Assert.assertEquals(1, results.size());
    Assert.assertEquals(SearchLookupRequest.class, results.iterator().next().getClass());
    SearchLookupRequest lookup = (SearchLookupRequest) results.iterator().next();
    Assert.assertEquals("sys.cpu.user", lookup.getQuery());
    Assert.assertEquals(3000, lookup.getLimit());
    Assert.assertEquals(0, lookup.getTags().size());
}
项目:timely    文件:HttpRequestDecoderTest.java   
@Test
public void testLookupURIWithLimitAndTags() throws Exception {
    decoder = new TestHttpQueryDecoder(config);
    DefaultFullHttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET,
            "/api/search/lookup?m=sys.cpu.user{host=*}&limit=3000");
    addCookie(request);
    decoder.decode(null, request, results);
    Assert.assertEquals(1, results.size());
    Assert.assertEquals(SearchLookupRequest.class, results.iterator().next().getClass());
    SearchLookupRequest lookup = (SearchLookupRequest) results.iterator().next();
    Assert.assertEquals("sys.cpu.user", lookup.getQuery());
    Assert.assertEquals(3000, lookup.getLimit());
    Assert.assertEquals(1, lookup.getTags().size());
    Tag tag = lookup.getTags().iterator().next();
    Assert.assertEquals("host", tag.getKey());
    Assert.assertEquals("*", tag.getValue());
}
项目:timely    文件:HttpRequestDecoderTest.java   
@Test
public void testSuggestPostWithValidType() throws Exception {
    // @formatter:off
    String content = 
    "{\n" +
    "    \"type\": \"metrics\"\n" +
    "}";
    // @formatter:on
    decoder = new TestHttpQueryDecoder(config);
    DefaultFullHttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.POST,
            "/api/suggest");
    request.content().writeBytes(content.getBytes());
    addCookie(request);
    decoder.decode(null, request, results);
    Assert.assertEquals(1, results.size());
    Assert.assertEquals(SuggestRequest.class, results.iterator().next().getClass());
    SuggestRequest suggest = (SuggestRequest) results.iterator().next();
    Assert.assertEquals("metrics", suggest.getType());
    Assert.assertFalse(suggest.getQuery().isPresent());
    Assert.assertEquals(25, suggest.getMax());
    suggest.validate();
}
项目:timely    文件:HttpRequestDecoderTest.java   
@Test
public void testSuggestPostWithValidTypeAndQuery() throws Exception {
    // @formatter:off
    String content = 
    "{\n" +
    "    \"type\": \"metrics\",\n" +
    "    \"q\": \"sys.cpu.user\"\n" +
    "}";
    // @formatter:on
    decoder = new TestHttpQueryDecoder(config);
    DefaultFullHttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.POST,
            "/api/suggest");
    request.content().writeBytes(content.getBytes());
    addCookie(request);
    decoder.decode(null, request, results);
    Assert.assertEquals(1, results.size());
    Assert.assertEquals(SuggestRequest.class, results.iterator().next().getClass());
    SuggestRequest suggest = (SuggestRequest) results.iterator().next();
    Assert.assertEquals("metrics", suggest.getType());
    Assert.assertEquals("sys.cpu.user", suggest.getQuery().get());
    Assert.assertEquals(25, suggest.getMax());
    suggest.validate();
}
项目:timely    文件:HttpRequestDecoderTest.java   
@Test
public void testSuggestPostWithValidTypeAndQueryAndMax() throws Exception {
    // @formatter:off
    String content = 
    "{\n" +
    "    \"type\": \"metrics\",\n" +
    "    \"q\": \"sys.cpu.user\",\n" +
    "    \"max\": 30\n" +
    "}";
    // @formatter:on
    decoder = new TestHttpQueryDecoder(config);
    DefaultFullHttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.POST,
            "/api/suggest");
    request.content().writeBytes(content.getBytes());
    addCookie(request);
    decoder.decode(null, request, results);
    Assert.assertEquals(1, results.size());
    Assert.assertEquals(SuggestRequest.class, results.iterator().next().getClass());
    SuggestRequest suggest = (SuggestRequest) results.iterator().next();
    Assert.assertEquals("metrics", suggest.getType());
    Assert.assertEquals("sys.cpu.user", suggest.getQuery().get());
    Assert.assertEquals(30, suggest.getMax());
    suggest.validate();
}
项目:timely    文件:HttpRequestDecoderTest.java   
@Test
public void testPutMetricPost() throws Exception {
    // @formatter:off
    Metric m = Metric.newBuilder()
            .name("sys.cpu.user")
            .value(TEST_TIME, 1.0D)
            .tag(new Tag("tag1", "value1"))
            .tag(new Tag("tag2", "value2"))
            .build();
    // @formatter:on
    byte[] buf = JsonUtil.getObjectMapper().writeValueAsBytes(m);
    decoder = new TestHttpQueryDecoder(config);
    DefaultFullHttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.POST, "/api/put");
    request.content().writeBytes(buf);
    decoder.decode(null, request, results);
    Assert.assertEquals(1, results.size());
    Assert.assertEquals(MetricRequest.class, results.iterator().next().getClass());
}
项目:riposte    文件:RequestInfoImpl.java   
/**
 * {@inheritDoc}
 */
@Override
public synchronized List<InterfaceHttpData> getMultipartParts() {
    if (!isMultipartRequest() || !isCompleteRequestWithAllChunks())
        return null;

    if (multipartData == null) {
        byte[] contentBytes = getRawContentBytes();
        HttpRequest fullHttpRequestForMultipartDecoder =
            (contentBytes == null)
            ? new DefaultFullHttpRequest(getProtocolVersion(), getMethod(), getUri())
            : new DefaultFullHttpRequest(getProtocolVersion(), getMethod(), getUri(),
                                         Unpooled.wrappedBuffer(contentBytes));

        fullHttpRequestForMultipartDecoder.headers().add(getHeaders());

        multipartData = new HttpPostMultipartRequestDecoder(
            new DefaultHttpDataFactory(false), fullHttpRequestForMultipartDecoder, getContentCharset()
        );
    }

    return multipartData.getBodyHttpDatas();
}
项目:little_mitm    文件:ProxyUtilsTest.java   
@Test
public void testAddNewViaHeaderToExistingViaHeader() {
    String hostname = "hostname";

    HttpMessage httpMessage = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "/endpoint");
    httpMessage.headers().add(HttpHeaders.Names.VIA, "1.1 otherproxy");
    ProxyUtils.addVia(httpMessage, hostname);

    List<String> viaHeaders = httpMessage.headers().getAll(HttpHeaders.Names.VIA);
    assertThat(viaHeaders, hasSize(2));

    assertEquals("1.1 otherproxy", viaHeaders.get(0));

    String expectedViaHeader = "1.1 " + hostname;
    assertEquals(expectedViaHeader, viaHeaders.get(1));
}
项目:SI    文件:HttpClient.java   
public boolean sendAsyncRequest(ResponseListener listener, String url, OneM2mRequest reqMessage) {

    try {
        URI uri = new URI(url);
        String host = uri.getHost() == null? "127.0.0.1" : uri.getHost();
        int port = uri.getPort();
        if(port == -1) port = 80;

        DefaultFullHttpRequest request = makeHttpMessage(host, reqMessage);

        log.debug("sendAsyncRequest");
        bootstrap.connect(host, port).addListener(new ConnectListner(request, mHttpClientListener, listener));

        return true;

    } catch (Exception e) {
        log.error("sendAsyncRequest", e);
    }

    return false;
}
项目:flashback    文件:RecordedHttpRequestBuilderTest.java   
@Test
public void testBuildContent()
    throws Exception {
  HttpRequest nettyRequest = new DefaultFullHttpRequest(HttpVersion.HTTP_1_0, HttpMethod.GET, "www.google.com");
  RecordedHttpRequestBuilder recordedHttpRequestBuilder = new RecordedHttpRequestBuilder(nettyRequest);

  String charset = "UTF-8";
  String str1 = "first content";
  HttpContent httpContent1 = new DefaultHttpContent(Unpooled.copiedBuffer(str1.getBytes(charset)));
  recordedHttpRequestBuilder.appendHttpContent(httpContent1);
  String str2 = "second content";
  HttpContent httpContent2 = new DefaultHttpContent(Unpooled.copiedBuffer(str2.getBytes(charset)));
  recordedHttpRequestBuilder.appendHttpContent(httpContent2);

  String lastStr = "Last chunk";
  HttpContent lastContent = new DefaultLastHttpContent(Unpooled.copiedBuffer(lastStr.getBytes(charset)));
  recordedHttpRequestBuilder.appendHttpContent(lastContent);

  RecordedHttpRequest recordedHttpRequest = recordedHttpRequestBuilder.build();
  Assert
      .assertEquals((str1 + str2 + lastStr).getBytes(charset), recordedHttpRequest.getHttpBody().getContent(charset));
}
项目:GameServerFramework    文件:NHttpRequestParams.java   
private void buildRequestHeaders(DefaultFullHttpRequest request) {
    // config request header
    request.headers().set(HttpHeaders.Names.HOST, this.uri.getHost());
    // 添加压缩头
    request.headers().set(HttpHeaders.Names.ACCEPT_ENCODING, "gzip, deflate");
    // added user agent
    if (userAgent != null && !userAgent.isEmpty()) request.headers().set(HttpHeaders.Names.USER_AGENT, userAgent);
    else request.headers().remove(HttpHeaders.Names.USER_AGENT);
    // add custom
    if (this.headers != null) {
        for (Entry<String, String> item : this.headers.entrySet()) {
            request.headers().set(item.getKey(), item.getValue());
        }
    }
    // add cookie
    if (this.cookies != null) {
        String cookieValue = ClientCookieEncoder.STRICT.encode(cookies);
        request.headers().set(HttpHeaders.Names.COOKIE, cookieValue);
    }
}
项目:netty4.0.27Learn    文件:HttpPostRequestDecoderTest.java   
@Test
public void testFilenameContainingSemicolon() throws Exception {
    final String boundary = "dLV9Wyq26L_-JQxk6ferf-RT153LhOO";
    final DefaultFullHttpRequest req = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.POST,
            "http://localhost");
    req.headers().add(HttpHeaders.Names.CONTENT_TYPE, "multipart/form-data; boundary=" + boundary);
    // Force to use memory-based data.
    final DefaultHttpDataFactory inMemoryFactory = new DefaultHttpDataFactory(false);
    final String data = "asdf";
    final String filename = "tmp;0.txt";
    final String body =
            "--" + boundary + "\r\n" +
                    "Content-Disposition: form-data; name=\"file\"; filename=\"" + filename + "\"\r\n" +
                    "Content-Type: image/gif\r\n" +
                    "\r\n" +
                    data + "\r\n" +
                    "--" + boundary + "--\r\n";

    req.content().writeBytes(body.getBytes(CharsetUtil.UTF_8.name()));
    // Create decoder instance to test.
    final HttpPostRequestDecoder decoder = new HttpPostRequestDecoder(inMemoryFactory, req);
    assertFalse(decoder.getBodyHttpDatas().isEmpty());
    decoder.destroy();
}
项目:netty4.0.27Learn    文件:WebSocketRequestBuilder.java   
public FullHttpRequest build() {
    FullHttpRequest req = new DefaultFullHttpRequest(httpVersion, method, uri);
    HttpHeaders headers = req.headers();

    if (host != null) {
        headers.set(Names.HOST, host);
    }
    if (upgrade != null) {
        headers.set(Names.UPGRADE, upgrade);
    }
    if (connection != null) {
        headers.set(Names.CONNECTION, connection);
    }
    if (key != null) {
        headers.set(Names.SEC_WEBSOCKET_KEY, key);
    }
    if (origin != null) {
        headers.set(Names.SEC_WEBSOCKET_ORIGIN, origin);
    }
    if (version != null) {
        headers.set(Names.SEC_WEBSOCKET_VERSION, version.toHttpHeaderValue());
    }
    return req;
}
项目:happor    文件:AsyncHttpClient.java   
public static void main(String[] args) {
    PropertyConfigurator.configure("conf/log4j.properties");

    AsyncHttpClient client = new AsyncHttpClient();
    DefaultFullHttpRequest request = new DefaultFullHttpRequest(
            HttpVersion.HTTP_1_1, HttpMethod.GET, "/AsyncHttpClient");
    client.sendRequest("127.0.0.1", 8888, request, new Callback() {

        public void onResponse(FullHttpResponse response) {
            // TODO Auto-generated method stub
            System.out.println("AsyncHttpClient onResponse");
        }

        public void onTimeout() {
            // TODO Auto-generated method stub
            System.out.println("AsyncHttpClient onTimeout");
        }

        public void onConnectFail() {
            // TODO Auto-generated method stub
            System.out.println("AsyncHttpClient onConnectFail");
        }

    });
}
项目:SI    文件:HttpClient.java   
public boolean sendAsyncRequest(ResponseListener listener, String url, OneM2mRequest reqMessage) {

    try {
        URI uri = new URI(url);
        String host = uri.getHost() == null? "127.0.0.1" : uri.getHost();
        int port = uri.getPort();
        if(port == -1) port = 80;

        DefaultFullHttpRequest request = makeHttpMessage(host, reqMessage);

        log.debug("sendAsyncRequest");
        bootstrap.connect(host, port).addListener(new ConnectListner(request, mHttpClientListener, listener));

        return true;

    } catch (Exception e) {
        log.error("sendAsyncRequest", e);
    }

    return false;
}
项目:easydq_webservice_proxy    文件:ModuleSelectorTest.java   
@Test
public void testSelectModuleDocs() {
    Map<String, Module> modules = new LinkedHashMap<String, Module>();
    ForwardingModule expectedModule = new ForwardingModule("theChosen", 8080, new NoOperationProcessor(), new NoOperationProcessor());
    modules.put("/fake/deeper", new ForwardingModule("notImportant3", 8080, new NoOperationProcessor(), new NoOperationProcessor()));
    modules.put("/fake", new ForwardingModule("notImportant2", 8080, new NoOperationProcessor(), new NoOperationProcessor()));
    modules.put("/docs/deeper1", new ForwardingModule("notImportant4", 8080, new NoOperationProcessor(), new NoOperationProcessor()));
    modules.put("/docs/deeper2", new ForwardingModule("notImportant5", 8080, new NoOperationProcessor(), new NoOperationProcessor()));
    modules.put("/docs", expectedModule);
    modules.put("/", new ForwardingModule("notImportant1", 8080, new NoOperationProcessor(), new NoOperationProcessor()));

    DefaultFullHttpRequest httpRequest = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "/docs");

    ModuleSelector moduleSelector = new ModuleSelector(modules);
    Module module = moduleSelector.selectModule(httpRequest);
    Assert.assertSame(expectedModule, module);
}
项目:easydq_webservice_proxy    文件:ModuleSelectorTest.java   
@Test
public void testSelectModuleDocsDeeper1() {
    Map<String, Module> modules = new LinkedHashMap<String, Module>();
    ForwardingModule expectedModule = new ForwardingModule("theChosen", 8080, new NoOperationProcessor(), new NoOperationProcessor());
    modules.put("/fake", new ForwardingModule("notImportant2", 8080, new NoOperationProcessor(), new NoOperationProcessor()));
    modules.put("/docs", new ForwardingModule("notImportant3", 8080, new NoOperationProcessor(), new NoOperationProcessor()));
    modules.put("/docs/deeper1", expectedModule);
    modules.put("/docs/deeper2", new ForwardingModule("notImportant4", 8080, new NoOperationProcessor(), new NoOperationProcessor()));
    modules.put("/", new ForwardingModule("notImportant1", 8080, new NoOperationProcessor(), new NoOperationProcessor()));

    DefaultFullHttpRequest httpRequest = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "/docs/deeper1");

    ModuleSelector moduleSelector = new ModuleSelector(modules);
    Module module = moduleSelector.selectModule(httpRequest);
    Assert.assertSame(expectedModule, module);
}
项目:netty4study    文件:WebSocketRequestBuilder.java   
public FullHttpRequest build() {
    FullHttpRequest req = new DefaultFullHttpRequest(httpVersion, method, uri);
    HttpHeaders headers = req.headers();

    if (host != null) {
        headers.set(Names.HOST, host);
    }
    if (upgrade != null) {
        headers.set(Names.UPGRADE, upgrade);
    }
    if (connection != null) {
        headers.set(Names.CONNECTION, connection);
    }
    if (key != null) {
        headers.set(Names.SEC_WEBSOCKET_KEY, key);
    }
    if (origin != null) {
        headers.set(Names.SEC_WEBSOCKET_ORIGIN, origin);
    }
    if (version != null) {
        headers.set(Names.SEC_WEBSOCKET_VERSION, version.toHttpHeaderValue());
    }
    return req;
}
项目:xio    文件:Http1ServerCodecUnitTest.java   
@Test
public void testFullRequest() throws Exception {
  outputReceived = new CountDownLatch(1);

  FullHttpRequest requestIn = new DefaultFullHttpRequest(HTTP_1_1, GET, "/");
  channel.writeInbound(requestIn);

  channel.runPendingTasks(); // blocks

  Uninterruptibles.awaitUninterruptibly(outputReceived);

  Request requestOut = requests.remove(0);

  assertTrue(requestOut != null);
  assertTrue(requestOut instanceof FullRequest);
  assertEquals("HTTP/1.1", requestOut.version());
  assertEquals(HttpMethod.GET, requestOut.method());
  assertEquals("/", requestOut.path());
  assertFalse(requestOut.hasBody());
  assertFalse(requestOut.body() == null);
  assertEquals(0, requestOut.body().readableBytes());
}
项目:xio    文件:Http1ServerCodecUnitTest.java   
@Test
public void testFullRequestWithBody() throws Exception {
  outputReceived = new CountDownLatch(1);
  String payload = "body";
  ByteBuf body = ByteBufUtil.writeUtf8(UnpooledByteBufAllocator.DEFAULT, payload);
  FullHttpRequest requestIn = new DefaultFullHttpRequest(HTTP_1_1, GET, "/", body);

  channel.writeInbound(requestIn);

  channel.runPendingTasks(); // blocks

  Uninterruptibles.awaitUninterruptibly(outputReceived);

  Request requestOut = requests.remove(0);

  assertTrue(requestOut != null);
  assertTrue(requestOut instanceof FullRequest);
  assertEquals("HTTP/1.1", requestOut.version());
  assertEquals(HttpMethod.GET, requestOut.method());
  assertEquals("/", requestOut.path());
  assertTrue(requestOut.hasBody());
  assertFalse(requestOut.body() == null);
  assertEquals(body, requestOut.body());
}
项目:xio    文件:Http1ServerCodecUnitTest.java   
@Test
public void testFullResponse() throws Exception {
  outputReceived = new CountDownLatch(2);
  ByteBuf body = ByteBufUtil.writeUtf8(UnpooledByteBufAllocator.DEFAULT, "response");

  FullHttpRequest requestIn = new DefaultFullHttpRequest(HTTP_1_1, GET, "/");
  FullResponse responseIn = ResponseBuilders.newOk().body(body).build();

  channel.writeInbound(requestIn);
  channel.runPendingTasks(); // blocks
  channel.writeOutbound(responseIn);

  channel.runPendingTasks(); // blocks

  Uninterruptibles.awaitUninterruptibly(outputReceived);

  HttpResponse responseOut = (HttpResponse) responses.remove(0);

  assertTrue(responseOut != null);
  assertTrue(responseOut instanceof FullHttpResponse);
  assertEquals(HTTP_1_1, responseOut.protocolVersion());
  assertEquals(OK, responseOut.status());
  assertFalse(((FullHttpResponse) responseOut).content() == null);
  assertEquals(body, ((FullHttpResponse) responseOut).content());
}
项目:c5    文件:ClientHttpProtostuffEncoder.java   
@Override
protected void encode(ChannelHandlerContext ctx, Message msg, List<Object> out) throws Exception {
  Class<?> messageType = msg.getClass();

  LowCopyProtobufOutput outputSerializer = new LowCopyProtobufOutput();
  msg.cachedSchema().writeTo(outputSerializer, msg);
  List<ByteBuffer> serializedBuffers = outputSerializer.buffer.finish();
  ByteBuf requestContent = Unpooled.wrappedBuffer(serializedBuffers.toArray(new ByteBuffer[]{}));

  DefaultFullHttpRequest httpRequest = new DefaultFullHttpRequest(
      HttpVersion.HTTP_1_0,
      HttpMethod.POST,
      "foo",
      requestContent);

  httpRequest.headers().set(HttpProtostuffConstants.PROTOSTUFF_HEADER_NAME,
      messageType.getName());
  httpRequest.headers().set(HttpHeaders.Names.CONTENT_TYPE,
      "application/octet-stream");
  httpRequest.headers().set(HttpHeaders.Names.CONTENT_LENGTH,
      requestContent.readableBytes());

  out.add(httpRequest);
}
项目:netty-netty-5.0.0.Alpha1    文件:WebSocketRequestBuilder.java   
public FullHttpRequest build() {
    FullHttpRequest req = new DefaultFullHttpRequest(httpVersion, method, uri);
    HttpHeaders headers = req.headers();

    if (host != null) {
        headers.set(Names.HOST, host);
    }
    if (upgrade != null) {
        headers.set(Names.UPGRADE, upgrade);
    }
    if (connection != null) {
        headers.set(Names.CONNECTION, connection);
    }
    if (key != null) {
        headers.set(Names.SEC_WEBSOCKET_KEY, key);
    }
    if (origin != null) {
        headers.set(Names.SEC_WEBSOCKET_ORIGIN, origin);
    }
    if (version != null) {
        headers.set(Names.SEC_WEBSOCKET_VERSION, version.toHttpHeaderValue());
    }
    return req;
}
项目:couchbase-jvm-core    文件:ConfigHandler.java   
private HttpRequest encodeRestApiRequest(ChannelHandlerContext ctx, RestApiRequest msg) {
    HttpMethod httpMethod = msg.method();
    ByteBuf content = Unpooled.copiedBuffer(msg.body(), CharsetUtil.UTF_8);
    String path = msg.pathWithParameters();

    FullHttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, httpMethod, path, content);
    //these headers COULD be overridden
    request.headers().set(HttpHeaders.Names.USER_AGENT, env().userAgent());
    request.headers().set(HttpHeaders.Names.HOST, remoteHttpHost(ctx));

    for (Map.Entry<String, Object> header : msg.headers().entrySet()) {
        request.headers().set(header.getKey(), header.getValue());
    }

    //these headers should always be computed from the msg
    request.headers().set(HttpHeaders.Names.CONTENT_LENGTH, content.readableBytes());

    addHttpBasicAuth(ctx, request, msg.username(), msg.password());
    return request;
}
项目:couchbase-jvm-core    文件:ViewHandlerTest.java   
@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);
    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...
}
项目:etcd-java-client    文件:DefaultEtcdClient.java   
@Override
protected FullHttpRequest buildRequest() {
    final StringBuilder uriBuilder = new StringBuilder();
    uriBuilder.append("/v2/keys").append(key);
    final StringBuilder queryBuilder = new StringBuilder();
    if (previousValue != null) {
        appendQueryStringSeparator(queryBuilder);
        queryBuilder.append("prevValue=").append(urlEncode(previousValue));
    }
    if (previousIndex != null) {
        appendQueryStringSeparator(queryBuilder);
        queryBuilder.append("prevIndex=").append(previousIndex);
    }
    if (directory) {
        appendQueryStringSeparator(queryBuilder);
        queryBuilder.append("dir=true");
    }
    if (recursive) {
        appendQueryStringSeparator(queryBuilder);
        queryBuilder.append("recursive=true");
    }
    uriBuilder.append(queryBuilder);
    return new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.DELETE, uriBuilder.toString());
}
项目:jooby    文件:NettyPush.java   
@Override
public void push(final String method, final String path, final Map<String, Object> headers) {
  ctx.channel().eventLoop().execute(() -> {
    AsciiString streamIdHeader = HttpConversionUtil.ExtensionHeaderNames.STREAM_ID.text();
    Http2Connection connection = encoder.connection();
    int nextStreamId = connection.local().incrementAndGetNextStreamId();
    Http2Headers h2headers = new DefaultHttp2Headers()
        .path(path)
        .method(method)
        .authority(authority)
        .scheme(scheme);
    headers.forEach((n, v) -> h2headers.add(n, v.toString()));
    encoder.writePushPromise(ctx, streamId, nextStreamId, h2headers, 0, ctx.newPromise());

    // TODO: Is there another way of handling a push promise?
    DefaultFullHttpRequest pushRequest = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1,
        HttpMethod.valueOf(method.toUpperCase()), path, Unpooled.EMPTY_BUFFER,
        new DefaultHttpHeaders(false).set(streamIdHeader, nextStreamId),
        EmptyHttpHeaders.INSTANCE);
    ctx.pipeline().fireChannelRead(pushRequest);
    ctx.pipeline().fireChannelReadComplete();
  });
}
项目:wisdom    文件:RequestFromVertXTest.java   
@Test
public void testLanguageOrder() throws Exception {
    HttpRequest req = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "/");
    req.headers().set(HeaderNames.ACCEPT_LANGUAGE, "da, en-gb;q=0.8, en;q=0.7");
    RequestFromVertx request = new RequestFromVertx(create(req));
    assertThat(request.languages()).containsExactly(
            new Locale("da"),
            new Locale("en", "gb"),
            new Locale("en")
    );

    req.headers().set(HeaderNames.ACCEPT_LANGUAGE, "da, en-gb;q=0.7, en;q=0.9");
    request = new RequestFromVertx(create(req));
    assertThat(request.languages()).containsExactly(
            new Locale("da"),
            new Locale("en"),
            new Locale("en", "gb")
    );
}
项目:wisdom    文件:ContextFromVertxTest.java   
@Test
public void testHeader() throws Exception {
    HttpRequest req = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "/");
    req.headers().add(HeaderNames.ACCEPT_ENCODING, "gzip, deflate");
    req.headers().add(HeaderNames.ACCEPT_LANGUAGE, "en-US");
    req.headers().add(HeaderNames.ACCEPT_CHARSET, "utf-8");
    req.headers().add("test", "a").add("test", "b");
    ContextFromVertx context = new ContextFromVertx(vertx, vertx.getOrCreateContext(),  accessor, RequestFromVertXTest.create(req));

    assertThat(context.headers().containsKey(HeaderNames.ACCEPT_LANGUAGE)).isTrue();
    assertThat(context.header(HeaderNames.ACCEPT_LANGUAGE)).isEqualTo("en-US");
    assertThat(context.headers().get("test")).containsExactly("a", "b");
    assertThat(context.headers("test")).containsExactly("a", "b");
    assertThat(context.headers().get("missing")).isNull();
    assertThat(context.header("missing")).isNull();
}
项目:blueflood    文件:HttpRequestWithDecodedQueryParamsTest.java   
@Test
public void testQueryParamsDecode() {
    final DefaultFullHttpRequest defaultRequest = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET,
            "http://localhost/v1.0/ac98760XYZ/experimental/metric_views/metXYZ?from=12345&to=56789&points=100"
            + "&foo=x,y,z&foo=p");
    final HttpRequestWithDecodedQueryParams requestWithParams =
            HttpRequestWithDecodedQueryParams.create(defaultRequest);

    Map<String, List<String>> queryParams = requestWithParams.getQueryParams();
    Assert.assertEquals(4, queryParams.size());
    final String fromParam = queryParams.get("from").get(0);
    final String toParam = queryParams.get("to").get(0);
    final String pointsParam = queryParams.get("points").get(0);
    List<String> fooParams = queryParams.get("foo");

    Assert.assertEquals(12345, Integer.parseInt(fromParam));
    Assert.assertEquals(56789, Integer.parseInt(toParam));
    Assert.assertEquals(100, Integer.parseInt(pointsParam));
    Assert.assertEquals(2, fooParams.size());

    for (String fooParam : fooParams) {
        Assert.assertTrue(fooParam.equals("x,y,z") || fooParam.equals("p"));
    }
}