java.lang.ClassCastException: libcore.net.http.HttpURLConnectionImpl ne peut pas être converti en javax.net.ssl.HttpsURLConnection
Je suis en train d'écrire un peu de code pour télécharger un fichier à partir de l'appareil vers le cloud via HTTPS.
Pertinentes extrait de:
HttpsURLConnection conn = null;
URL url = new URL(urlstring);
conn = (HttpsURLConnection) url.openConnection(); //exception here.
Mais le casting ne compile pas:
06-20 15:58:05.311: E/FNF(30286): java.lang.ClassCastException: libcore.net.http.HttpURLConnectionImpl cannot be cast to javax.net.ssl.HttpsURLConnection
J'ai trouvé cette question similaire: À l'aide de la classe java HttpsURLConnectionmais je ne suis pas l'importation de rien du soleil package.
Mon importations:
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URL;
import android.net.Uri;
import javax.net.ssl.HttpsURLConnection;
import android.util.Log;
import edu.mit.media.funf.storage.RemoteFileArchive;
import edu.mit.media.funf.util.LogUtil;
J'ai été de me gratter la tête à ce sujet pendant un certain temps maintenant, des suggestions?
source d'informationauteur Teddy
Vous devez vous connecter pour publier un commentaire.
Votre
urlString
doit commencer parhttps://
et pashttp://
pour vous d'être en mesure de le convertir en unHttpsURLConnection
.url.openConnection();
semble retourner un objet de typelibcore.net.http.HttpURLConnectionImpl
alors que vous avez déclaré votre "conn" objet comme étant de typeimport javax.net.ssl.HttpsURLConnection;
. Vous avez besoin de trier vos importations et des objets d'occasion. Peut-être que vous avez manqué quelque chose dans le tutoriel que vous suivez.Simple de supprimer
urlConnection.setDoOutput(true);
cela fonctionnera très bien.
J'avais même Exception
java.lang.ClassCastException: libcore.net.http.HttpURLConnectionImpl cannot be cast to javax.net.ssl.HttpsURLConnection
J'ai changé
à
Maintenant, il fonctionne parfaitement.