Java访问外网图片地址时,如何添加代理?

简介: 【10月更文挑战第14天】Java访问外网图片地址时,如何添加代理?

在Java中,如果你需要通过代理服务器访问外网图片地址,你可以使用java.net.Proxy类来设置代理。以下是一个示例代码,展示了如何通过代理服务器下载图片:

import java.io.*;
import java.net.*;

public class ImageDownloader {
   
    public static void downloadImage(String imageUrl, String proxyHost, int proxyPort) {
   
        try {
   
            // 创建代理对象
            Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyHost, proxyPort));

            // 打开连接
            URL url = new URL(imageUrl);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection(proxy);

            // 设置请求方法
            connection.setRequestMethod("GET");

            // 连接到资源
            connection.connect();

            // 检查响应码
            int responseCode = connection.getResponseCode();
            if (responseCode == HttpURLConnection.HTTP_OK) {
   
                // 读取数据
                InputStream inputStream = connection.getInputStream();
                BufferedImage image = ImageIO.read(inputStream);

                // 保存图片到本地文件
                File outputFile = new File("downloaded_image.jpg");
                ImageIO.write(image, "jpg", outputFile);

                System.out.println("Image downloaded successfully: " + outputFile.getAbsolutePath());
            } else {
   
                System.out.println("Failed to download image. Response code: " + responseCode);
            }
        } catch (IOException e) {
   
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
   
        String imageUrl = "http://example.com/image.jpg";
        String proxyHost = "192.168.1.100"; // 代理服务器地址
        int proxyPort = 8080; // 代理服务器端口

        downloadImage(imageUrl, proxyHost, proxyPort);
    }
}

在这个例子中,我们首先创建了一个Proxy对象,指定了代理的类型(HTTP)和代理服务器的地址及端口。然后,我们使用这个代理对象作为参数调用URL.openConnection()方法来打开一个连接。之后,我们就可以像平常一样发送请求并接收响应了。

请确保替换imageUrl, proxyHost, 和 proxyPort为实际的值。此外,你可能需要处理更多的异常情况和错误检查,以确保程序的健壮性。

目录
相关文章
|
3天前
|
Java
Java开发实现图片地址检验,如果无法找到资源则使用默认图片,如何编码?
【10月更文挑战第14天】Java开发实现图片地址检验,如果无法找到资源则使用默认图片,如何编码?
17 2
|
15天前
|
小程序 Java
小程序访问java后台失败解决方案
小程序访问java后台失败解决方案
29 2
|
15天前
|
小程序 JavaScript Java
小程序访问java后台
小程序访问java后台
25 1
|
17天前
|
存储 Java
深入理解java对象的访问定位
这篇文章深入探讨了Java对象的访问定位机制,比较了使用句柄和直接指针两种主流的对象访问方式,并指出了它们各自的优势,例如句柄访问在对象移动时的稳定性和直接指针访问的速度优势。
30 0
深入理解java对象的访问定位
|
1月前
|
存储 Java 关系型数据库
java: 无法访问org.springframework.context.ConfigurableApplicationContext
`亲测可用,之前搜索了很多博客,啥样的都有,就是不介绍报错以及配置用处,根本不懂照抄那些配置是干啥的,稀里糊涂的按照博客搭完也跑不起来,因此记录这个。` `项目背景`:公司项目当前采用http协议+shiro+mysql的登录认证方式,而现在想支持ldap协议认证登录然后能够访问自己公司的项目网站。 `举例说明`:假设我们公司有自己的门户网站,现在我们收购了一家公司,他们数据库采用ldap存储用户数据,那么为了他们账户能登陆我们公司项目所以需要集成,而不是再把他们的账户重新在mysql再创建一遍,万一人家有1W个账户呢,不累死了且也不现实啊。
41 11
|
1月前
|
安全 Java 编译器
java访问字段
java访问字段
24 6
|
1月前
|
安全 Java 编译器
java访问类字段
java访问类字段
|
29天前
|
安全 Java 开发者
Java修饰符与封装:理解访问权限、行为控制与数据隐藏的重要性
Java中的修饰符和封装概念是构建健壯、易维护和扩展的Java应用程序的基石。通过合理利用访问权限修饰符和非访问修饰符,开发者能够设计出更加安全、灵活且高效的代码结构。封装不仅是面向对象编程的核心原则之一,也是提高软件项目质量和可维护性的关键策略。
14 1
|
1月前
|
存储 Java 关系型数据库
java: 无法访问org.springframework.ldap.core.LdapTemplate
`亲测可用,之前搜索了很多博客,啥样的都有,就是不介绍报错以及配置用处,根本不懂照抄那些配置是干啥的,稀里糊涂的按照博客搭完也跑不起来,因此记录这个。` `项目背景`:公司项目当前采用http协议+shiro+mysql的登录认证方式,而现在想支持ldap协议认证登录然后能够访问自己公司的项目网站。 `举例说明`:假设我们公司有自己的门户网站,现在我们收购了一家公司,他们数据库采用ldap存储用户数据,那么为了他们账户能登陆我们公司项目所以需要集成,而不是再把他们的账户重新在mysql再创建一遍,万一人家有1W个账户呢,不累死了且也不现实啊。
13 1
|
1月前
|
SQL JavaScript 前端开发
基于Java访问Hive的JUnit5测试代码实现
根据《用Java、Python来开发Hive应用》一文,建立了使用Java、来开发Hive应用的方法,产生的代码如下
65 6