我在Java中有一个问题,我如何检查图像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
感谢更新:试着用这段代码,我得到了谷歌:
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");
}
}
}
但是我总是得到一个错误…我不确定这是否可能。还有其他想法吗?
发出Http头请求。如果它是一个已经存在的路径,你会得到一个响应,否则你会得到一个错误。
这并不检查它是否是一个有效的图像,只是检查路径是否存在。如果你想检查图片是否有效,我认为你别无选择,只能下载
您可以使用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);