import javax.websocket.ClientEndpointConfig; import javax.websocket.ContainerProvider; import javax.websocket.DeploymentException; import javax.websocket.Endpoint; import javax.websocket.EndpointConfig; import javax.websocket.HandshakeResponse; import javax.websocket.Session; import javax.websocket.WebSocketContainer; import java.io.IOException; import java.net.URI; import java.util.Collections; import java.util.List; import java.util.Map; /** * @author erik */ public class WebSocketTest { private static class Configurator extends ClientEndpointConfig.Configurator { Configurator() { } @Override public void beforeRequest(Map> headers) { headers.put("Dummy", Collections.singletonList(String.join("", Collections.nCopies(4000, "A")))); super.beforeRequest(headers); } @Override public void afterResponse(HandshakeResponse handshakeResponse) { super.afterResponse(handshakeResponse); } } public static void main(String[] args) { Endpoint endpoint = new Endpoint() { @Override public void onOpen(Session session, EndpointConfig endpointConfig) { } }; ClientEndpointConfig endpointConfig = ClientEndpointConfig.Builder.create() .configurator(new Configurator()) .build(); WebSocketContainer container = ContainerProvider.getWebSocketContainer(); try { Session backendSession = container.connectToServer(endpoint, endpointConfig, URI.create("ws://demos.kaazing.com/echo?.kl=Y")); backendSession.close(); } catch (DeploymentException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }