Sự khác biệt nếu tôi cố gắng kết nối với "https" bằng cách sử dụng HttpURLConnection
và HttpsURLConnection
là gì?Sử dụng HttpURLConnection và HttpsURLConnection để kết nối với https?
Tôi có thể kết nối với "https" bằng cách sử dụng cả hai HttpURLConnection
và HttpsURLConnection
để tôi bị nhầm lẫn. Tôi nghĩ tôi chỉ có thể thiết lập một kết nối đến một "https" nếu tôi sử dụng HttpsURLConnection?
Dưới đây là một số câu hỏi của tôi:
- Nếu tôi đã có thể mở một kết nối đến một "https" sử dụng HttpURLConnection, là kết nối của tôi vẫn còn trong "https" hay nó trở thành "http"?
- Làm cách nào để xác thực chứng chỉ? Vì tôi không có bất kỳ
SSLSocketFactory
vàHostnameVerifier
trênHttpURLConnection
của tôi trong khi kết nối với "https", bạn cần sử dụngSSLSocketFactory
vàHostnameVerifier
? - Điều đó có nghĩa là tôi tin tưởng mọi thứ bất kể chứng chỉ có đáng tin cậy hay không?
Cảm ơn! Tôi đã thử kết nối với các trang web https khác nhau bằng cách sử dụng mã của bạn. Hành vi mặc định của SSLSocketFactory là chỉ chấp nhận các chứng nhận được ký bởi CA. Tôi đã nhận được một sun.security.validator.ValidatorException khi tôi thử kết nối với một trang web có chứng chỉ tự ký. Cảm ơn bạn đã làm rõ! – Arci
Tôi hiểu, Vì vậy, nếu bạn biết máy chủ chỉ chấp nhận HTTPS URI, bạn có thể sử dụng một cách an toàn 'HttpURLConnection' để thực hiện các yêu cầu của bạn? – Micro