Estoy trabajando en un proyecto en el que estoy creando una clase para ejecutar solicitudes de clientes http (mi clase actúa como cliente). Se necesita de una URL y un método de petición (GET, POST, PUT, etc.) y quiero ser capaz de analizar la URL y abrir una HttpsURLConnection o HttpURLConnection en función de si es https o http (asumen las URL dadas serán siempre correcto).En java, ¿cómo crear HttpsURLConnection o HttpURLConnection en función de la url?
Si hago lo siguiente:
URLConnection conn = url.openConnection();
Luego que creará automáticamente una URLConnection que puede aceptar HTTP y HTTPS, pero si hago esto, entonces no puedo encontrar ninguna manera de establecer un método de petición (GET, POST, etc.), ya que solo las clases HttpsURLConnection o HttpURLConnection tienen el método setRequestMethod.
Si hago algo como lo siguiente:
if(is_https)
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
else
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
A continuación, las conexiones se crean, pero no puedo acceder a ellos fuera de los bloques si.
¿Es posible hacer esto, o debo renunciar y utilizar las clases Apache HttpClient?
Simplemente defina * conexion * antes de que el * si * declaración. Necesitas leer acerca del alcance variable. – user359996