我正在使用Ning http 库使用以下代码连接到 websocket 服务器(Weblogic 12.1.2):
WebSocket ws = new AsyncHttpClient().prepareGet(uri.toASCIIString()).execute(new WebSocketUpgradeHandler.Builder().build()).get();
ws.addWebSocketListener(this);
ws.sendTextMessage(message);
在 JUnit 测试中运行时它工作正常。但是当我从小程序(在同一台 PC 上)运行完全相同的代码时,我得到了这个异常:
java.util.concurrent.ExecutionException: java.io.IOException: Invalid handshake response
at com.ning.http.client.providers.netty.NettyResponseFuture.abort(NettyResponseFuture.java:324)
at com.ning.http.client.providers.netty.NettyAsyncHttpProvider.abort(NettyAsyncHttpProvider.java:1320)
at com.ning.http.client.providers.netty.NettyAsyncHttpProvider.access$800(NettyAsyncHttpProvider.java:155)
at com.ning.http.client.providers.netty.NettyAsyncHttpProvider$WebSocketProtocol.handle(NettyAsyncHttpProvider.java:2312)
at com.ning.http.client.providers.netty.NettyAsyncHttpProvider.messageReceived(NettyAsyncHttpProvider.java:1142)
at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
可能是什么原因?从wireshark我看到两种情况下的WebSocket版本都是13。我不使用安全的ws。