java - 从 protected 网站导入 Java 中的 URL 图像

标签 java

我试图从网站导入图片,当您第一次加载该网站时,有某种只允许浏览器进入的重新路由服务器。 我试过这个:

public class TestURLImage {
public static void main(String[] args) throws MalformedURLException, IOException {
    EventQueue.invokeLater(new Runnable() {
        @Override
        public void run() {
            try {
                UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
            } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
            }

            try {
                String path = "https://kissanime.to/Uploads/Etc/12-15-2012/726336142483.jpg";
                System.out.println("Geting Image from " + path);
                System.out.println();    
                URL url = new URL(path);
                BufferedImage image = ImageIO.read(url);
                System.out.println("Loading image into frame...");
                JLabel label = new JLabel(new ImageIcon(image));
                JFrame f = new JFrame();
                f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                f.getContentPane().add(label);
                f.pack();
                f.setLocation(200, 200);
                f.setVisible(true);
            } catch (Exception exp) {
                exp.printStackTrace();
            }

        }
    });

}}

但是我得到一个错误:

Geting Image from https://kissanime.to/Uploads/Etc/12-15-2012/726336142483.jpg    

javax.imageio.IIOException: Can't get input stream from URL!
at javax.imageio.ImageIO.read(ImageIO.java:1395)
at javaapplication6.TestURLImage$1.run(TestURLImage.java:35)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.io.IOException: Server returned HTTP response code: 403 for URL: https://kissanime.to/Uploads/Etc/12-15-2012/726336142483.jpg
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1840)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
at java.net.URL.openStream(URL.java:1038)
at javax.imageio.ImageIO.read(ImageIO.java:1393)
... 15 more    

那么有什么方法可以获取图像吗? 或者至少是什么问题?

最佳答案

我建议你使用更高级的东西,比如 apache HTTP Client library .您将对所有通信拥有更多控制权。例如,您可以设置一个标准的用户代理来伪造一个正常的请求。

关于java - 从 protected 网站导入 Java 中的 URL 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34501883/

相关文章:

java - 过滤器上的 map 给出编译问题

java - 在同步方法中发布后,普通方法中的非不可变类可见性

java - Android - 设置应用程序背景

java - 管理 struts 2 中单一操作的不同方法

java - 等待时间后替换字符串

java - OpenAM OpenDJ dockerization 问题 : Fails to redeploy using old data source

java - 内存分配是基于引用类还是实例类?

java.lang.NoClassDefFoundError : Could not initialize class org. slf4j.LoggerFactory

java - "import au.com.bytecode.opencsv.CSVReader"错误

java - JSF 2.2 和 Primefaces 4.0 : Refreshing image after file upload