地图转发使用代理访问地图服务器
程序员文章站
2024-02-01 23:24:22
...
好久没有写博客,今天凑机会写一个,这个是公司的需求,因为大部分业务都是内网访问的,而且服务器也基本上是不能连接外网的,但是我们的实时交通这个快大家也都是知道的,没有外网是不可能做到的,所以我们想了一个折中的办法,找一台代理服务器来代理,只要进行转发就可以了,话不多说上代码
// 处理GET请求 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("----------------来请求了一次------------"); String level = request.getParameter("level"); String x = request.getParameter("x"); String y = request.getParameter("y"); String cache = request.getParameter("cache"); ImageInputStream insr = getRealTimeTraffic(level,x,y,cache); BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream()); response.setContentType("png"); byte c[] = new byte[1024]; int len = 0; while((len = insr.read(c))>0){ out.write(c, 0, len); } out.flush(); out.close(); System.gc(); } /** * 从外网获取数据流 * @param level * @param x * @param y * @param cache * @return */ private ImageInputStream getRealTimeTraffic(String level,String x,String y,String cache){ String url = String .format("****网站?v=1.0" + "&t=1&zoom=%s&x=%s&y=%s&cache=%s",level,x,y,cache); URL myURL = null; URLConnection httpsConn = null; try { myURL = new URL(url); } catch (MalformedURLException e) { e.printStackTrace(); } try { httpsConn = (URLConnection) myURL.openConnection(); if (httpsConn != null) { ImageInputStream insr = ImageIO.createImageInputStream( httpsConn.getInputStream()); return insr; } }catch (IOException e) { e.printStackTrace(); } return null; }
这样就可以在一定范围解决问题了
上一篇: mysql存储过程实例
下一篇: 为什么jeecg没有用a.b而用了a_b
推荐阅读
-
地图转发使用代理访问地图服务器
-
使用Nginx配置本地图片服务器
-
Asp.Net使用服务器控件Image/ImageButton显示本地图片的方法
-
Asp.Net使用服务器控件Image/ImageButton显示本地图片的方法
-
手机使用代理IP访问电脑服务器所遇到的坑
-
Asp.Net使用服务器控件Image/ImageButton显示本地图片的方法
-
使用curl库通过代理服务器访问网页_PHP
-
使用curl库通过代理服务器访问网页_PHP
-
Asp.Net使用服务器控件Image/ImageButton显示本地图片的方法
-
Cesium使用技巧 - 离线情况下使用自定义地图服务(取消对Bing地图的访问)