使用 JAVA 中的查询参数从 link 下载图像
Download image from link with query parameter in JAVA
我正在 java
中的这段代码的帮助下从 link 下载图像
public static BufferedImage ImageDownloader(String urlString){
BufferedImage image = null;
try {
URL url = new URL(urlString.replace(" ","%20"));
URLConnection connection = url.openConnection();
connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11");
connection.connect();
InputStream inputStream = connection.getInputStream();
image = ImageIO.read(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
return image;
}
上面的代码可以完美地下载图片,但是无法像这样link下载图片
我知道我可以删除该查询参数并更新 url,但是还有比这更好的解决方案吗?
使用transferFrom()
URL website = new URL("http://www.example.com/example.php");
ReadableByteChannel RB = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream("example.html");
fos.getChannel().transferFrom(RB, 0, Long.MAX_VALUE);
只是不要设置用户代理:
public static BufferedImage ImageDownloader(String urlString){
BufferedImage image = null;
try {
String cleanUrl = urlString.replace(" ","%20");
URL url = new URL(cleanUrl);
URLConnection connection = url.openConnection();
connection.connect();
InputStream inputStream = connection.getInputStream();
image = ImageIO.read(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
return image;
}
或者:
public static BufferedImage ImageDownloader(String urlString){
BufferedImage image = null;
try {
String cleanUrl = urlString.replace(" ","%20");
URL url = new URL(cleanUrl);
image = ImageIO.read(url.openStream());
} catch (IOException e) {
e.printStackTrace();
}
return image;
}
或者:
public static BufferedImage ImageDownloader(String urlString){
BufferedImage image = null;
try {
URL url = new URL(urlString.replace(" ","%20"));
image = ImageIO.read(url);
} catch (IOException e) {
e.printStackTrace();
}
return image;
}
我正在 java
中的这段代码的帮助下从 link 下载图像public static BufferedImage ImageDownloader(String urlString){
BufferedImage image = null;
try {
URL url = new URL(urlString.replace(" ","%20"));
URLConnection connection = url.openConnection();
connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11");
connection.connect();
InputStream inputStream = connection.getInputStream();
image = ImageIO.read(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
return image;
}
上面的代码可以完美地下载图片,但是无法像这样link下载图片
我知道我可以删除该查询参数并更新 url,但是还有比这更好的解决方案吗?
使用transferFrom()
URL website = new URL("http://www.example.com/example.php");
ReadableByteChannel RB = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream("example.html");
fos.getChannel().transferFrom(RB, 0, Long.MAX_VALUE);
只是不要设置用户代理:
public static BufferedImage ImageDownloader(String urlString){
BufferedImage image = null;
try {
String cleanUrl = urlString.replace(" ","%20");
URL url = new URL(cleanUrl);
URLConnection connection = url.openConnection();
connection.connect();
InputStream inputStream = connection.getInputStream();
image = ImageIO.read(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
return image;
}
或者:
public static BufferedImage ImageDownloader(String urlString){
BufferedImage image = null;
try {
String cleanUrl = urlString.replace(" ","%20");
URL url = new URL(cleanUrl);
image = ImageIO.read(url.openStream());
} catch (IOException e) {
e.printStackTrace();
}
return image;
}
或者:
public static BufferedImage ImageDownloader(String urlString){
BufferedImage image = null;
try {
URL url = new URL(urlString.replace(" ","%20"));
image = ImageIO.read(url);
} catch (IOException e) {
e.printStackTrace();
}
return image;
}