这是我的代码,它给出了一个错误,指出URL无效,但我确信它是有效的,因为我可以通过浏览器获取图像。这是link to the page。
// Connect to the web site
Document document = Jsoup.connect(newsImg).get();
// Using Elements to get the class data
Elements img = document.select("img[src]");
// Locate the src attribute
String imgSrc = img.attr("src");
// Download image from URL
InputStream input = new java.net.URL(imgSrc).openStream();
// Decode Bitmap
bitmap = BitmapFactory.decodeStream(input);
答案 0 :(得分:0)
你没有指定你想要的图像,所以我假设你想要第一条新闻的图片。如果您在检查员中打开该页面(例如Chrome的开发工具),您可以看到该图像具有相对链接,如下所示:let v1 : welcomeMessageView = welcomeMessageView(nibName: "welcomeMessageView", bundle: nil)
self.addChildViewController(v1)
self.scrollView.addSubview(v1.view)
v1.didMoveToParentViewController(self)
,这可能是您错误背后的动机。
如果要下载图像,则必须提供完整的URL,这是相对URL所依据的基本目标。在这种情况下,它会解析为:/rf/image_size_800x600/HT/p2/2016/01/05/Pictures/india-airbase-attack_a23bb650-b38f-11e5-87b3-9157ef61c9c7.jpg
答案 1 :(得分:0)
请尝试使用以下代码。有关详细信息,请参阅其中的注释。
Document document = Jsoup.connect(newsLink).get();
// Instead of using Elements, we'll use Element class directly...
Element img = document.select("img#1").first();
if (img == null) { // Always check that the image has been foud
throw new RuntimeException("Unable to locate image in " + newsLink);
}
// Locate the src attribute. You need an absolute URL here...
String imgSrc = img.absUrl("src"); // ... so we use `absUrl`
// Download image from URL
InputStream input = new java.net.URL(imgSrc).openStream();
//...