我正在使用Jsoup Java HTML分析器从特定URL获取图像。但一些图像抛出状态502错误代码,并没有保存到我的机器。以下是我使用的代码快照: -如何修复错误502状态
String url = "http://www.jabong.com";
String html = Jsoup.connect(url.toString()).get().html();
Document doc = Jsoup.parse(html, url);
images = doc.select("img");
for (Element element : images) {
String imgSrc = element.attr("abs:src");
log.info(imgSrc);
if (imgSrc != "") {
saveFromUrl(imgSrc, dirPath+"/" + nameCounter + ".jpg");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
log.error("error in sleeping");
}
nameCounter++;
}
}
而且saveFromURL功能如下: -
public static void saveFromUrl(String Url, String destinationFile) {
try {
URL url = new URL(Url);
InputStream is = url.openStream();
OutputStream os = new FileOutputStream(destinationFile);
byte[] b = new byte[2048];
int length;
while ((length = is.read(b)) != -1) {
os.write(b, 0, length);
}
is.close();
os.close();
} catch (IOException e) {
log.error("Error in saving file from url:" + Url);
//e.printStackTrace();
}
}
我搜索有关状态码502互联网上,但它说的错误是由于不良的网关。我不明白这一点。其中一个可能的事情,我在想这个错误可能是因为我发送请求图像循环。可能是web服务器不能处理这么多的负载,因此拒绝对图像的请求时,以前的图像不发送。所以我试图把睡眠后,提取每个图像,但没有运气:( 一些建议请
非常感谢。作为新手不了解URLConnection对象的事情。我仍然不清楚你想通过干净地关闭资源来说什么。请解释一下 – sachinjain024 2012-04-13 17:06:06
你还在收到502错误吗?我发布了另一个没有JSoup业务的代码示例供您试用。也许这将有助于确定问题所在。 – Brad 2012-04-18 10:32:08
谢谢布拉德,感谢您解决问题。由于我遇到了这个问题,我使用jsoup将相对URL改为绝对URL,这确实解决了我的目的,并且非常感谢帮助我并给出了确切的解决方案.Cheers \ m / – sachinjain024 2012-04-19 08:28:32