我在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");
}
}
}
但我总是收到错误......我不确定这是否可行..还有其他想法吗?
答案 0 :(得分:2)
发出Http Head请求。如果它是现有路径,您将收到回复,否则您将收到错误。
这并不会检查它是否是有效图像,只是路径存在。如果你想检查图像是否有效,我想除了下载之外你别无选择。
答案 1 :(得分: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);