En java, comment créer HttpsURLConnection ou HttpURLConnection en fonction de l'url?

Je travaille sur un projet où je suis la création d'une classe à exécuter http demandes des clients (ma classe se comporte comme un client). Il prend dans une url et une méthode de requête (GET, POST, PUT, etc) et je veux être en mesure d'analyser les URL et ouvrir un HttpsURLConnection ou HttpURLConnection basée sur le fait qu'il est https ou http (en assumer les urls données sera toujours correcte).

Si je ne les suivants:

URLConnection conn = url.openConnection();

Alors qui va automatiquement créer un URLConnection qui peut accepter à la fois les protocoles http et https, mais si je fais cela, alors je ne peux pas trouver un moyen de définir une méthode de requête (GET, POST, etc...), puisque seule la HttpsURLConnection ou HttpURLConnection classes ont la setRequestMethod méthode.

Si je fais quelque chose comme ce qui suit:

if(is_https)
    HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
else
    HttpURLConnection conn = (HttpURLConnection) url.openConnection();

Puis les connexions sont créées, mais je ne peux pas y accéder en dehors de la si les blocs.

Est-il possible de le faire, ou devrais-je abandonner et utiliser apache httpclient classes?

Il suffit de définir donn avant le si déclaration. Vous avez besoin de lire sur la portée des variables.

OriginalL'auteur Adam Plumb | 2009-06-03