Pracuję nad projektem, w którym tworzę klasę do uruchamiania żądań klienta HTTP (moja klasa działa jako klient). Przyjmuje adres URL i metodę żądania (GET, POST, PUT, itp.) I chcę mieć możliwość przeanalizowania adresu URL i otwarcia połączenia HttpsURLConnection lub HttpURLConnection na podstawie tego, czy jest to https, czy http (zakładam, że podane adresy URL będą zawsze poprawny).W języku java, jak utworzyć HttpsURLConnection lub HttpURLConnection na podstawie adresu URL?
Gdybym wykonaj następujące czynności:
URLConnection conn = url.openConnection();
Wtedy to automatycznie utworzy URLConnection że może przyjąć zarówno HTTP i HTTPS, ale jeśli mogę to zrobić to nie mogę znaleźć żadnego sposobu, aby ustawić metodę żądania (GET, POST, itp.), Ponieważ tylko klasy HttpsURLConnection lub HttpURLConnection mają metodę setRequestMethod.
Jeśli robię coś jak następuje:
if(is_https)
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
else
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
Następnie połączenia są tworzone, ale nie można uzyskać do nich dostęp poza if bloków.
Czy można to zrobić, czy powinienem po prostu zrezygnować i użyć klas apache httpclient?
Wystarczy zdefiniować * conn * przed * jeśli * komunikat. Musisz przeczytać o zakresie zmiennym. – user359996