HTTP 接続を処理するクラスを作成しています。HTTP と HTTPS の両方を処理したいのですが、同じ変数を使用します (データの送信などに同じコードを使用できます)。現在、私のコードは次のようになっています。
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 メソッドにアクセスできるように、このコードを機能させる方法はありますか?