在调试接口过程中,发现本地调试一直正常,但服务器一直报 “Server chose SSLv3, but that protocol version is not enabled or not supported by the client.” 去网上查了下,说linux要开启SSL v3。咨询了下运维,给我的答复是,https的URL可以在服务器上访问。 在这个过程中我看了下服务器的jdk版本和我本地运行的jdk版本不一致,网上看了下这两个版本的区别,发现本地的jdk默认开启了SSLV3,而服务器上jdk版本是关闭的。 然后去问了客户给的https支持的协议,说是支持SSLV3,不支持SSLV2及其他。 因为所有客户都是http协议访问,所以让客户把https协议改成了http协议。就没再开启服务器jdk sslv3 下面给出代码实现
public static String httpPost(String url, String json,Map headerMap)
throws Exception {
String res = null;
// 将JSON进行UTF-8编码,以便传输中文
//String encoderJson = URLEncoder.encode(json,"UTF-8");
final CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(url);
httpPost.addHeader(HTTP.CONTENT_TYPE, HttpUtils.APPLICATION_JSON);
RequestConfig requestConfig = Reque