2011-07-26 87 views
0

我在Java中有一個問題如何檢查圖像http路徑是否有效?檢查HTTP圖像路徑是否有效

例如:
此圖像已存在。 http://g0.gstatic.com/ig/images/promos/homepage_home.png

但是這不是。 http://sampledomain.com/images/fake.png

我想作一個邏輯性,比如:

If(image is existing) 
- do this 
Else 
- do others 

感謝

UPDATE: 這個代碼,我雖然谷歌搜索得到試了一下:

import java.awt.Image; 
import java.io.IOException; 
import java.net.URL; 
import javax.imageio.ImageIO; 
public class TestImage { 
     public static void main(String[] arg){ 
      Image image = null; 
      try { 
       URL url = new URL("http://g0.gstatic.com/ig/images/promos/homepage_home.png"); 
       image = ImageIO.read(url); 
      } catch (IOException e) { 
       System.out.println("Error"); 
      } 
     } 
} 

但我總是得到一個錯誤...我不知道這是否可能..任何其他呃想法?

+0

是否要檢查它是否存在或者它是否是有效的URL?我猜第一個? – Jacob

+0

嗨,我想檢查是否真的有一個圖像在該路徑... –

回答

2

發出Http Head請求。如果它是現有的路徑,你會得到一個迴應,否則你會得到一個錯誤。

儘管只是路徑存在,但並不檢查它是否是有效的圖像。如果你想檢查圖像是否有效,我想你除了下載它之外別無選擇。

+0

嗨,我想檢查它在java獨自一人。謝謝 –

+0

檢查路徑中是否存在圖像的唯一方法是向服務器發出請求。 –

+0

嗨,Jeff..this實際上是我想知道的,如果我可以用java做到這一點..說我可以只提供一個URL,然後檢查是否有一個圖像背後。我正在查看URL類。 –

0

您可以使用selenium javascript executor檢查圖像是否存在。

希望這個代碼可以幫助你 -

picPath是要驗證的URL路徑。

result = (Boolean) ((JavascriptExecutor) driver).executeScript(
       "var http = new XMLHttpRequest(); http.open('HEAD',arguments[0], false); http.send();return http.status!=404;", picPath);