我正在創建一個處理HTTP連接的類,我想處理HTTP和HTTPS,但使用相同的變量(所以我可以使用相同的代碼發送數據等)。目前,我的代碼看起來像這樣的:在同一變量中同時支持HttpURLConnection和HttpsURLConnection?
if (ssl)
{
conn = (HttpsURLConnection) new URL(...).openConnection();
conn.setHostnameVerifier(...);
}
else
{
conn = (HttpURLConnection) new URL(...).openConnection();
}
當 「參數conn」 的類型是HttpsURLConnection的中,HttpURLConnection的轉換失敗。當「conn」類型爲HttpURLConnection或URLConnection時,「setHostnameVerifier」和其他HTTPS相關方法無法訪問。
鑑於HttpsURLConnection是HttpURLConnection類的一個子類,所以我認爲將它投射會有效,但我顯然是錯誤的。有什麼方法可以使代碼正常工作,以便在需要時可以訪問HTTPS方法?
在大多數情況下,你應該保持默認的主機名驗證反正。 – Bruno 2012-08-01 16:08:28