如何自动解密 Vetx WebClient 响应

How to decrypt Vetx WebClient response automatically

我有一个 Web 客户端可以使用 Vertx WebClient 通过 https 运行 调用一些 REST API。从服务器收到的响应是加密格式的。如何自动解密?我是否需要在我的 JVM 中安装服务器的 SSL 证书才能执行此操作?我有一个使用 Jersey rest 客户端库编写的类似客户端,它会自动解密响应而无需在 JVM 中安装任何证书,我可以在 JVM 中看到来自相同 API

的正确响应
 this.client.post(“some/url”) 
                .putHeader("Content-Type", "application/json; charset=UTF-8")
                .putHeader("Content-Length", "10")
                .putHeader("User-Agent", "Dalvik/1.6.0 (Linux; U; Android 4.4.4; SAMSUNG-SM-N900A Build/KTU84P)")
                .putHeader("Connection", "Keep-Alive")
                .putHeader("Accept-Encoding", "gzip")
                .sendBuffer(Buffer.buffer("abcde"))              
                .subscribe().with(r -> {
                    System.out.println(String.format("Subscribe: code:%d body:%s",r.statusCode(), r.bodyAsString()));                
              });

上面的代码在控制台上打印解密消息,如下所示。

:��mo����B������%��Ʋ��(��e������mФ b�ؠ����s9�^J�d��@g,s� gν��\��������z��}��~��Hy6[><������������r����ο|]��=��)'��u ������{��_��w������ϸ<��/��>N��������+��������s.wy������f��z ... ��G������u����n�~~����6����G��ZH�I������H8������c��/6� ��հ�㣦`�V�ZN ,��[\��a����SQ��P\la��

不要手动添加 Accept-Encoding header,配置客户端以便启用 compression handling

WebClientOptions options = new WebClientOptions().setTryUseCompression(true);