当前位置:主页 > 查看内容

阿里云Java SDK通过代理访问阿里云OpenAPI

发布时间:2021-06-30 00:00| 位朋友查看

简介:经常有人会问 我们的服务器在内网 不想让服务器拥有外网IP前提下访问阿里云的OpenAPI可以吗 今天我们对此进行一个解答。在文章中 我们使用最新的阿里云Java SDK com.aliyun:aliyun-java-sdk-core:4.5.20 。文章的示例代码中 代理假设为192.168.1.1:8888 具体……
经常有人会问 我们的服务器在内网 不想让服务器拥有外网IP前提下访问阿里云的OpenAPI可以吗 今天我们对此进行一个解答。在文章中 我们使用最新的阿里云Java SDK com.aliyun:aliyun-java-sdk-core:4.5.20 。 文章的示例代码中 代理假设为192.168.1.1:8888 具体代理 包括下面示例里用到的用户名、密码请在开发、测试时改为对应的正确配置。 # 1. 阿里云Java SDK支持的HTTP客户端 阿里云Java SDK的HTTP客户端在 com.aliyuncs.http.HttpClientFactory.buildClient(IClientProfile) 中进行初始化 当前支持四种不同的客户端 定义在枚举类com.aliyuncs.http.HttpClientType中 * Compatible 传统的Java自带的Http客户端 用[ java.net ](https://docs.oracle.com/javase/8/docs/api/java/net/package-summary.html)进行HTTP访问 * ApacheHttpClient [ Apache Httpclient ](https://hc.apache.org/httpcomponents-client-4.5.x/index.html)客户端的实现 是阿里云Java SDK的默认实现 * OkHttp [ OkHttp ](https://square.github.io/okhttp/)客户端 当前暂不支持 不可用 * Custom 自定义客户端 因此 理论上 只要使用的HTTP客户端实现支持代理 那么阿里云Java SDK也支持代理。再不济 自定义客户端可以进行魔改。 # 2. 通用代理设置方式 ## 2.1 环境变量中配置代理 阿里云Java SDK支持 HTTP_PROXY 、 HTTPS_PROXY 、 NO_PROXY 三个系统环境变量 注意大小写 。这些变量通过 System.getEnv() 读入。需要注意的是 使用 System.setProperty() 设置的变量是无效的。 在Linux系统中临时配置环境变量 可执行 shell export HTTP_PROXY http://192.168.1.1:8888 export HTTPS_PROXY https://192.168.1.1:8888 然后正常初始化 com.aliyuncs.IAcsClient 即可。这种方式对代码无侵入 可写到应用启动脚本中。 ## 2.2 代码中指定代理 阿里云Java SDK支持在代码中配置代理 并且配置的代理优先级高于环境变量中的配置 java // 配置HTTP客户端 HttpClientConfig config HttpClientConfig.getDefault(); config.setHttpProxy( http://192.168.1.1:8888 config.setHttpsProxy( https://192.168.1.1:8888 // 配置SDK Profile IClientProfile profile DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret); profile.setHttpClientConfig(config); // 生成Client实例 IAcsClient client new DefaultAcsClient(profile);
本文转自网络,原文链接:https://developer.aliyun.com/article/784977
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文


随机推荐