在内部局域网(无外网)使用阿里云短信

        项目从阿里云迁移到政府外网,由于项目之前已使用阿里云短信通信,但是在政务云并无短信服务,若需继续使用阿里云短信,则需要做一些相关处理,其实很只需要做下代理即可, 应用服务器本身无法连接外网且外网无法连接到服务器,则添加代理机,通过代理机进行访问阿里云短信服务器,主要方式为:

修改阿里云短信服务API,增加代理设置:

本地代理机搭建:

一、简单http代理服务器搭建

  1. yum install squid
  2. vi /etc/squid/squid.conf

将http_access deny all 中deny 改为allow,http_port后面的是端口号,默认为3128。可改可不改。
       3. service squid restart
       4. 如果有防火墙, iptables -I INPUT -p tcp --dport 3128 -j ACCEPT

  • 代码修改,两种方式:
  1. 调用短信API前,设置系统属性;

在调用短信程序之前增加代理配置。

System.setProperty("http.proxySet", "true");

System.setProperty("http.proxyHost", "192.168.2.XXX");

System.setProperty("http.proxyPort", "" + 3128);

       2、修改源码

找到阿里云短信SDK中的HttpRequest类,其中有一个的方法为:getHttpConnection,再其中添加:

if (httpConn == null) {

            Proxy proxy = new Proxy(Proxy.Type.HTTP, new           InetSocketAddress("192.168.2.XXX", Integer.parseInt("3128")));

            httpConn = (HttpURLConnection)url.openConnection(proxy);

}

使用路由器设置可关闭外网进行验证:

https://jingyan.baidu.com/article/49711c61a81fd2fa451b7c4f.html

你可能感兴趣的:(阿里云短信,阿里云短信,添加代理)