J'essaie de télécharger un fichier xml.gz à partir d'un serveur distant avec HttpsURLConnection dans Java, mais je reçois une réponse vide. Voici un exemple de mon code:Télécharger le fichier xml.gz avec HttpsURLConnection
URL server = new URL("https://www.myurl.com/path/sample_file.xml.gz");
HttpsURLConnection connection = (HttpsURLConnection)server.openConnection();
connection.connect();
Lorsque j'essaie d'obtenir un InputStream à partir de la connexion, il est vide. (Si j'essaie connection.getInputStream(). Read() j'obtiens -1) Le fichier que j'attends est d'environ 50MB.
Pour tester ma santé mentale, j'ai également essayé d'entrer exactement la même URL dans mon navigateur, et il a retourné le fichier dont j'avais besoin. Est-ce que je manque quelque chose? Dois-je définir une sorte de paramètre dans la connexion? Toute aide/direction est très appréciée.
Le tiers qui fournit le fichier m'a dit à l'origine CURL comme suit: boucle --location C - --digest -k https://www.myurl.com/path/sample_file.xml .gz -o sample_file.xml.gz cela fonctionne bien aussi! –
le commutateur -k avec curl signifie "Autoriser les connexions aux sites SSL sans certs", donc je pense qu'il est prudent de supposer que le site ne présente pas un certificat valide. Vous devrez mettre à jour votre code pour prendre en compte cette commande –
La commande curl fonctionne sans le commutateur -k. Je suppose que cela signifie que le CERT est valide. –