我在java中实现一个客户端,通过TCP和SSL与EPP服务器通信。
我需要通过SSL向服务器发送一些xml-s,读取一些xml响应。我没有客户证书,我也没有。我只是能够向该服务器发送请求并阅读响应。我对这个话题很新。
我的代码是:
SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
SSLSocket sslsocket = (SSLSocket) sslsocketfactory.createSocket("server.epp.si", 65000);
DataOutputStream outToServerSSL = new DataOutputStream(sslsocket.getOutputStream());
BufferedReader inFromServerSSL = new BufferedReader(new InputStreamReader(sslsocket.getInputStream()));
outToServerSSL.write(somXML.getBytes());
inFromServerSSL.readLine();
它不依赖于我在xml中放入的字符串,我总是得到同样的greating xml响应。
现在我想知道即使是SSL hanshake也没问题。如何检查连接是否已成功建立以及接收器是否已准备好接收数据。所以我自己排除了连接问题。
答案 0 :(得分:1)
标准EPP定义为始终在连接到服务器时发送问候语,因此在上面的代码中,您正在将命令写入服务器,但输入缓冲区已经打开了问候语,因此这将是您将获得的在阅读回复时。
正确的流程如下
答案 1 :(得分:0)
使用
运行项目时,可以调试通信 java -Djavax.net.debug=all
。
你可以看到整个握手,它应该以
结束 *** Finished
verify_data:...
****
然后是一些简单和加密的数据。