2017-10-02 10 views
1

D'autres images fonctionnent, mais apparemment pas celle-ci.Java | stocker l'image de l'URL | java.io.IOException: 403 pour l'URL

https://www.kingjamesbibleonline.org/Inspirational-Images/large/Isaiah_55-6.jpg

code:

public static void imageFromURL(URL url, String saveAs) throws IOException { 
    HttpURLConnection httpURLCon = (HttpURLConnection) url.openConnection(); 
    httpURLCon.addRequestProperty("User-Agent", "Mozilla/4.76"); 
    BufferedImage c = ImageIO.read(url.openStream()); 
    File outputFile = new File("C:.../resources/" + saveAs); 
    ImageIO.write(c, "jpg", outputFile); 
} 

Message d'erreur:

java.io.IOException: Server returned HTTP response code: 403 for URL: https://www.kingjamesbibleonline.org/Inspirational-Images/large/Isaiah_55-6.jpg 
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1840) 
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441) 
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254) 
    at java.net.URL.openStream(URL.java:1045) 
    at MainActivity.imageFromURL(MainActivity.java:41) 
    at MainActivity.main(MainActivity.java:49) 

ont essayé d'autres tels que décide:

HttpURLConnection httpcon = (HttpURLConnection) url.openConnection(); 
httpcon.addRequestProperty("User-Agent", "Mozilla/4.76"); 

uc = url.openConnection(); 
uc.addRequestProperty("User-Agent", 
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"); 

URLConnection conn = url.openConnection(); 
conn.setRequestProperty("User-Agent", "Mozilla/5.0"); 

Répondre

0

Vous avez déjà ouvert une connexion à l'URL de l'image et stockée dans httpURLCon.

réutiliser cette connexion, parce que c'est celui pour lequel vous avez défini l'agent utilisateur:

HttpURLConnection httpURLCon = (HttpURLConnection) url.openConnection(); 
httpURLCon.addRequestProperty("User-Agent", "Mozilla/4.76"); 
BufferedImage c = ImageIO.read(httpURLCon.getInputStream()); 
+0

Modification du openStream() à getInputStream() semblait aider beaucoup. –