Example usage for io.netty.handler.codec.http DefaultHttpHeaders add

List of usage examples for io.netty.handler.codec.http DefaultHttpHeaders add

Introduction

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

Prototype

@Override
    public HttpHeaders add(CharSequence name, Iterable<?> values) 

Source Link

Usage

From source file:com.difference.historybook.proxy.littleproxy.LittleProxyResponseTest.java

License:Apache License

@Test
public void testGetHeaders() {
    DefaultHttpHeaders headers = new DefaultHttpHeaders();
    headers.add("header1", "value1");
    headers.add("header2", "value2");

    FullHttpResponse response = mock(FullHttpResponse.class);
    when(response.headers()).thenReturn(headers);

    LittleProxyResponse lpr = new LittleProxyResponse(response);
    Map<String, String> responseHeaders = lpr.getHeaders();
    assertEquals(2, responseHeaders.size());
    assertEquals("value1", responseHeaders.get("header1"));
    assertEquals("value2", responseHeaders.get("header2"));
}

From source file:com.englishtown.vertx.jersey.impl.DefaultJerseyHandlerTest.java

License:Open Source License

@Test
public void testHandle_JSON_POST() throws Exception {

    DefaultHttpHeaders headers = new DefaultHttpHeaders();
    headers.add(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON);
    when(request.method()).thenReturn(HttpMethod.POST);
    when(request.headers()).thenReturn(new HeadersAdaptor(headers));

    jerseyHandler.init(options);/*from ww w . j a  v a 2s.  co  m*/
    jerseyHandler.handle(request);

    verify(request).handler(dataHandlerCaptor.capture());
    verify(request).endHandler(endHandlerCaptor.capture());

    Buffer data = Buffer.buffer("{}");
    dataHandlerCaptor.getValue().handle(data);
    endHandlerCaptor.getValue().handle(null);

    verify(applicationHandlerDelegate).handle(any(ContainerRequest.class));

}

From source file:com.englishtown.vertx.jersey.impl.DefaultJerseyHandlerTest.java

License:Open Source License

@Test
public void testShouldReadData() throws Exception {

    boolean result;

    DefaultHttpHeaders headers = new DefaultHttpHeaders();
    headers.add(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_OCTET_STREAM);

    when(request.method()).thenReturn(HttpMethod.GET).thenReturn(HttpMethod.PUT);
    when(request.headers()).thenReturn(new HeadersAdaptor(headers));

    result = jerseyHandler.shouldReadData(request);
    assertFalse(result);//from   w  w w .ja  v a 2s . co m

    result = jerseyHandler.shouldReadData(request);
    assertFalse(result);

    headers.clear();
    headers.add(HttpHeaders.CONTENT_TYPE, MediaType.TEXT_PLAIN);

    result = jerseyHandler.shouldReadData(request);
    assertTrue(result);

    headers.clear();
    headers.add(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON);

    result = jerseyHandler.shouldReadData(request);
    assertTrue(result);

    headers.clear();
    headers.add(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_FORM_URLENCODED);
    when(request.method()).thenReturn(HttpMethod.POST);

    result = jerseyHandler.shouldReadData(request);
    assertTrue(result);

    headers.clear();
    headers.add(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_XML);

    result = jerseyHandler.shouldReadData(request);
    assertTrue(result);

    headers.clear();
    headers.add(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_FORM_URLENCODED + "; charset=UTF-8");

    result = jerseyHandler.shouldReadData(request);
    assertTrue(result);

}

From source file:com.github.smallcreep.bmp.client.tests.TestProxyBMPClient.java

License:Apache License

@Test
public void testOverridesResponseAsResponseFilterAndType() throws Throwable {
    Headers headersExpected = new Headers();
    List<String> accessControlAllowCredentialsList = new ArrayList<>();
    accessControlAllowCredentialsList.add("test");
    accessControlAllowCredentialsList.add("test2");
    headersExpected.put(ACCESS_CONTROL_ALLOW_CREDENTIALS, accessControlAllowCredentialsList);
    List<String> accessControlMaxAgeList = new ArrayList<>();
    accessControlMaxAgeList.add("test3");
    headersExpected.put(ACCESS_CONTROL_MAX_AGE, accessControlMaxAgeList);
    io.netty.handler.codec.http.HttpResponse responseOverrides = new DefaultFullHttpResponse(
            HttpVersion.HTTP_1_1, HttpResponseStatus.FORBIDDEN);
    for (String headers : headersExpected.keySet()) {
        for (String headersValue : headersExpected.get(headers)) {
            responseOverrides.headers().add(headers, headersValue);
        }/*  w  w  w  .  j  a v  a2  s. c  o  m*/
    }
    HttpMessageContents contents = new HttpMessageContents(
            new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.FORBIDDEN));
    contents.setTextContents("<html><body>Response successfully intercepted</body></html>");
    List<FilterUrls> filterUrls = new ArrayList<>();
    DefaultHttpHeaders httpHeaders = new DefaultHttpHeaders();
    httpHeaders.add(HttpHeaders.Names.CONTENT_TYPE, "text/css");
    filterUrls.add(new FilterUrls("^http:\\/\\/search\\.maven\\.org\\/(.*)$", HttpMethod.GET, httpHeaders));

    BMPResponseFilter bmpResponseFilter = new BMPResponseFilter(responseOverrides, contents, null, filterUrls);
    getBmpLittleProxy().setFilterResponse(bmpResponseFilter);
    Unirest.setProxy(new HttpHost(getBmpLittleProxy().getAddress(), getBmpLittleProxy().getPort()));

    HttpResponse<String> response = Unirest.get("http://search.maven.org/ajaxsolr/css/central.css").asString();
    assertOverrideResponseEquals(accessControlAllowCredentialsList, accessControlMaxAgeList, response);

    response = Unirest.get("http://search.maven.org/test.html").asString();
    assertOverrideResponseNotEquals(accessControlAllowCredentialsList, accessControlMaxAgeList, response);

    response = Unirest.get("http://search.maven.org/").asString();
    assertOverrideResponseNotEquals(accessControlAllowCredentialsList, accessControlMaxAgeList, response);
}

From source file:com.king.platform.net.http.HttpResponseTest.java

License:Apache License

@Test
public void getHeaderShouldBeCaseInsensitive() throws Exception {
    DefaultHttpHeaders defaultHttpHeaders = new DefaultHttpHeaders();
    defaultHttpHeaders.add("Accept", "*/*");

    HttpResponse httpResponse = new HttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK, null,
            defaultHttpHeaders);/*from  ww  w .  j  a  v  a2 s.  c o m*/

    assertEquals("*/*", httpResponse.getHeader("Accept"));
    assertEquals("*/*", httpResponse.getHeader("ACCEPT"));
    assertEquals("*/*", httpResponse.getHeader("accept"));

}

From source file:com.king.platform.net.http.HttpResponseTest.java

License:Apache License

@Test
public void getHeadersShouldBeCaseInsensitive() throws Exception {

    DefaultHttpHeaders defaultHttpHeaders = new DefaultHttpHeaders();
    defaultHttpHeaders.add("Accept", "*/*");
    defaultHttpHeaders.add("ACCEPT", "*/*");
    defaultHttpHeaders.add("accept", "*/*");

    HttpResponse httpResponse = new HttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK, null,
            defaultHttpHeaders);/*from  w  w  w .  ja  va  2s.co  m*/
    List<String> headers = httpResponse.getHeaders("accept");
    assertEquals(3, headers.size());
    for (String header : headers) {
        assertEquals("*/*", header);
    }
}

From source file:com.king.platform.net.http.HttpResponseTest.java

License:Apache License

@Test
public void getAllHeaders() throws Exception {
    DefaultHttpHeaders defaultHttpHeaders = new DefaultHttpHeaders();
    defaultHttpHeaders.add("Accept", "*/*");
    defaultHttpHeaders.add("ACCEPT", "*/*");
    defaultHttpHeaders.add("accept", "*/*");

    HttpResponse httpResponse = new HttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK, null,
            defaultHttpHeaders);//from  www .ja v  a  2  s . c  o  m
    List<Map.Entry<String, String>> allHeaders = httpResponse.getAllHeaders();
    assertEquals(3, allHeaders.size());
    for (Map.Entry<String, String> entry : allHeaders) {
        assertEquals("*/*", entry.getValue());
    }

}

From source file:com.vmware.xenon.common.test.websockets.JsWebSocket.java

License:Open Source License

/**
 * Standard constructor WebSocket(uri) available in JavaScript API
 *
 * @param endpointUri Websocket endpoint URI
 */// www. j a va 2s  .  c om
public JsWebSocket(String endpointUri) throws Exception {
    URI uri = new URI(endpointUri);
    String scheme = uri.getScheme() == null ? WS_SCHEME : uri.getScheme();
    final String host = uri.getHost() == null ? ServiceHost.LOCAL_HOST : uri.getHost();
    final int port;
    if (uri.getPort() == -1) {
        if (WS_SCHEME.equalsIgnoreCase(scheme)) {
            port = 80;
        } else if (WSS_SCHEME.equalsIgnoreCase(scheme)) {
            port = 443;
        } else {
            port = -1;
        }
    } else {
        port = uri.getPort();
    }

    if (!WS_SCHEME.equalsIgnoreCase(scheme) && !WSS_SCHEME.equalsIgnoreCase(scheme)) {
        System.err.println("Only WS(S) is supported.");
        return;
    }

    final boolean ssl = WSS_SCHEME.equalsIgnoreCase(scheme);
    final SslContext sslCtx;
    if (ssl) {
        sslCtx = SslContextBuilder.forClient().trustManager(InsecureTrustManagerFactory.INSTANCE).build();
    } else {
        sslCtx = null;
    }

    this.group = new NioEventLoopGroup();

    // Connect with V13 (RFC 6455 aka HyBi-17). You can change it to V08 or V00.
    // If you change it to V00, ping is not supported and remember to change
    // HttpResponseDecoder to WebSocketHttpResponseDecoder in the pipeline.
    DefaultHttpHeaders headers = new DefaultHttpHeaders();
    if (OperationContext.getAuthorizationContext() != null
            && OperationContext.getAuthorizationContext().getToken() != null) {
        headers.add(HttpHeaderNames.COOKIE,
                CookieJar.encodeCookies(
                        Collections.singletonMap(AuthenticationConstants.REQUEST_AUTH_TOKEN_COOKIE,
                                OperationContext.getAuthorizationContext().getToken())));
    }
    final WebSocketClientHandler handler = new WebSocketClientHandler(
            WebSocketClientHandshakerFactory.newHandshaker(uri, WebSocketVersion.V13, null, false, headers));
    Bootstrap b = new Bootstrap();
    b.group(this.group).channel(NioSocketChannel.class).handler(new ChannelInitializer<SocketChannel>() {
        @Override
        protected void initChannel(SocketChannel ch) {
            ChannelPipeline p = ch.pipeline();
            if (sslCtx != null) {
                p.addLast(sslCtx.newHandler(ch.alloc(), host, port));
            }
            p.addLast(new HttpClientCodec(), new HttpObjectAggregator(8192), handler);
        }
    });

    this.channel = b.connect(uri.getHost(), port).sync().channel();
    handler.handshakeFuture.addListener(new ChannelFutureListener() {
        @Override
        public void operationComplete(ChannelFuture future) throws Exception {
            try {
                JsExecutor.executeSynchronously(() -> {
                    if (future.isSuccess()) {
                        if (JsWebSocket.this.onopen != null) {
                            JsWebSocket.this.onopen.call(Context.getCurrentContext(), getParentScope(),
                                    JsWebSocket.this, new Object[] { null });
                        }
                    } else {
                        throw new RuntimeException(future.cause());
                    }
                });
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}

From source file:org.ballerinalang.net.http.nativeimpl.connection.AcceptWebSocketUpgrade.java

License:Open Source License

@Override
public void execute(Context context, CallableUnitCallback callback) {
    BMap<String, BValue> httpConnection = (BMap<String, BValue>) context.getRefArgument(0);

    WebSocketHandshaker webSocketHandshaker = (WebSocketHandshaker) httpConnection
            .getNativeData(WebSocketConstants.WEBSOCKET_MESSAGE);
    WebSocketConnectionManager connectionManager = (WebSocketConnectionManager) httpConnection
            .getNativeData(HttpConstants.NATIVE_DATA_WEBSOCKET_CONNECTION_MANAGER);
    if (webSocketHandshaker == null) {
        throw new BallerinaConnectorException(
                "Not a WebSocket upgrade request. Cannot upgrade from HTTP to WS");
    }//w  w  w .  jav a  2 s. c  om
    if (connectionManager == null) {
        throw new BallerinaConnectorException(
                "Cannot accept a WebSocket upgrade without WebSocket " + "connection manager");
    }

    WebSocketService webSocketService = (WebSocketService) httpConnection
            .getNativeData(WebSocketConstants.WEBSOCKET_SERVICE);

    BMap<String, BString> headers = (BMap<String, BString>) context.getRefArgument(1);
    DefaultHttpHeaders httpHeaders = new DefaultHttpHeaders();
    String[] keys = headers.keys();
    for (String key : keys) {
        httpHeaders.add(key, headers.get(key));
    }

    WebSocketUtil.handleHandshake(webSocketService, connectionManager, httpHeaders, webSocketHandshaker,
            context, callback);
}

From source file:org.ballerinalang.test.util.websocket.client.WebSocketClient.java

License:Open Source License

/**
 * @return true if the handshake is done properly.
 * @throws URISyntaxException throws if there is an error in the URI syntax.
 * @throws InterruptedException throws if the connecting the server is interrupted.
 *//*from  ww w .  java2s . co m*/
public boolean handhshake() throws InterruptedException, URISyntaxException, SSLException {
    boolean isDone = false;
    URI uri = new URI(url);
    String scheme = uri.getScheme() == null ? "ws" : uri.getScheme();
    final String host = uri.getHost() == null ? "127.0.0.1" : uri.getHost();
    final int port;
    if (uri.getPort() == -1) {
        if ("ws".equalsIgnoreCase(scheme)) {
            port = 80;
        } else if ("wss".equalsIgnoreCase(scheme)) {
            port = 443;
        } else {
            port = -1;
        }
    } else {
        port = uri.getPort();
    }

    if (!"ws".equalsIgnoreCase(scheme) && !"wss".equalsIgnoreCase(scheme)) {
        logger.error("Only WS(S) is supported.");
        return false;
    }

    final boolean ssl = "wss".equalsIgnoreCase(scheme);
    final SslContext sslCtx;
    if (ssl) {
        sslCtx = SslContextBuilder.forClient().trustManager(InsecureTrustManagerFactory.INSTANCE).build();
    } else {
        sslCtx = null;
    }

    group = new NioEventLoopGroup();
    DefaultHttpHeaders httpHeaders = new DefaultHttpHeaders();
    headers.entrySet().forEach(header -> {
        httpHeaders.add(header.getKey(), header.getValue());
    });
    try {
        // Connect with V13 (RFC 6455 aka HyBi-17). You can change it to V08 or V00.
        // If you change it to V00, ping is not supported and remember to change
        // HttpResponseDecoder to WebSocketHttpResponseDecoder in the pipeline.
        handler = new WebSocketClientHandler(WebSocketClientHandshakerFactory.newHandshaker(uri,
                WebSocketVersion.V13, null, true, httpHeaders));

        Bootstrap b = new Bootstrap();
        b.group(group).channel(NioSocketChannel.class).handler(new ChannelInitializer<SocketChannel>() {
            @Override
            protected void initChannel(SocketChannel ch) {
                ChannelPipeline p = ch.pipeline();
                if (sslCtx != null) {
                    p.addLast(sslCtx.newHandler(ch.alloc(), host, port));
                }
                p.addLast(new HttpClientCodec(), new HttpObjectAggregator(8192),
                        WebSocketClientCompressionHandler.INSTANCE, handler);
            }
        });

        channel = b.connect(uri.getHost(), port).sync().channel();
        isDone = handler.handshakeFuture().sync().isSuccess();
    } catch (Exception e) {
        logger.error("Handshake unsuccessful : " + e.getMessage(), e);
        return false;
    }

    logger.info("WebSocket Handshake successful : " + isDone);
    return isDone;
}