代理配置

更新时间:

本节主要介绍V1.0 SDK 如何进行网络代理配置。

代理类型

支持使用HTTP代理和HTTPS代理。其中,HTTP代理仅适用于HTTP协议的请求,而HTTPS代理则仅适用于HTTPS协议的请求。在配置代理后,对于某些阿里云产品无需通过代理访问的情况,也可通过SDK配置不使用代理访问。

代理配置方式

SDK提供了两种方式配置代理方式,您可以任选其中一种方式配置:

  • 使用环境变量

    • HTTP_PROXY 或 http_proxy:用于指定HTTP代理服务器地址。

    • HTTPS_PROXY :用于指定HTTPS代理服务器地址。

    • NO_PROXY :用于指定无需通过代理访问的地址列表,多个地址之间用逗号分隔,支持域名和IP地址格式。

  • 通过代码配置:使用 com.aliyuncs.http.HttpClientConfig 类进行配置。该类提供了以下方法:

    • setHttpProxy():用于指定HTTP代理服务器地址。

    • setHttpsProxy():用于指定HTTPS代理服务器地址。

    • setNoProxy():用于指定无需通过代理访问的地址列表,多个地址之间用逗号分隔,支持域名和IP地址格式。

    public static void main(String[] args) {
      com.aliyuncs.http.HttpClientConfig clientConfig = com.aliyuncs.http.HttpClientConfig.getDefault();
      // 设置HTTPS代理,需同时设置ProtocolType
      clientConfig.setHttpsProxy("http://user:password@127.0.0.1:8989");
      clientConfig.setProtocolType(com.aliyuncs.http.ProtocolType.HTTPS);
      
      // 设置HTTP代理
      clientConfig.setHttpProxy("http://127.0.0.1:9898");
    
      // 设置忽略代理地址列表
      clientConfig.setNoProxy("ecs-cn-hangzhou.aliyuncs.com,dysmsapi.aliyuncs.com");
    
      com.aliyuncs.profile.DefaultProfile profile = com.aliyuncs.profile.DefaultProfile.getProfile(
        "<REGION_ID>",
        // 从环境变量获取RAM用户的AccessKey ID
        System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        // 从环境变量获取RAM用户的AccessKey Secret
        System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
      );
      profile.setHttpClientConfig(clientConfig);
      com.aliyuncs.IAcsClient client = new com.aliyuncs.DefaultAcsClient(profile);
      // 省略调用API部分代码      
    }

相关参考

HTTP代理配置实践