在服務器上使用 httpclient 訪問(https)一個網站,發現總是返回 Connnect reset 錯誤,但是使用 curl 命令訪問完全可以。
這個有點奇怪,Connect reset 一般都是網絡原因引起,但curl命令可以訪問,說明網絡沒有問題,權限方面應該也是沒有問題。
后面發現服務器上jdk為1.7版本的,切換到jdk1.8環境訪問網站,發現可以訪問。
最終結論:協議不一致導致的連接問題,網站支持的是TLSv1.1 和 TLSv1.2, jdk1.7只支持TLSv1,且Java 7 沒有支持 AES GCM 加密。
參考鏈接:Connection reset原因分析和解決方案