好久没有写博客,今天凑机会写一个,这个是公司的需求,因为大部分业务都是内网访问的,而且服务器也基本上是不能连接外网的,但是我们的实时交通这个快大家也都是知道的,没有外网是不可能做到的,所以我们想了一个折中的办法,找一台代理服务器来代理,只要进行转发就可以了,话不多说上代码
// 处理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; }
这样就可以在一定范围解决问题了
相关推荐
内网nginx正向代理外网,并实现高德地图:web资源服务器A,搭建nginx转发服务,和webJsAPI的字符替换,涉及两个包nginx-1.22.1.tar.gz、ngx_http_substitutions_filter_module-master.zip代理服务器B,搭建nginx外网...
2. **Apache HTTP Server**: Apache是一个开源的Web服务器,用于提供静态内容和作为反向代理,转发请求到Tomcat服务器处理动态内容。安装Apache并确保其能正常运行,通过访问`http://localhost`或`http://127.0.0.1`...
你需要确保你的地图服务器支持JSONP响应。 2. **CORS (Cross-Origin Resource Sharing)**: CORS是现代浏览器支持的一种更安全、更灵活的跨域方式。服务器通过在HTTP响应头中设置`Access-Control-Allow-Origin`字段...
《ShadowBaiduMap:使用Node.js与MongoDB构建的百度地图匿名代理服务器》 在当前的网络环境中,用户隐私保护日益受到重视。针对这一需求,"ShadowBaiduMap"应运而生,它是一款基于Node.js和MongoDB开发的匿名代理...
这可以通过设置访问权限,只允许经过身份验证的用户访问地图服务来实现。 2. **部署Java版本的代理页面**: 下载并部署ESRI提供的Java版本代理页面到Tomcat或其他Web服务器,例如创建一个名为`java`的目录来存储...
描述中提到的“利用自己发布的geoserver发布的wfs,自己写的openlayers去访问,需要代理”,意味着开发者已经部署了GeoServer并发布了一些WFS服务,同时也在前端使用自定义的OpenLayers应用来展示地图。由于...
3. **代理服务器**:通过在服务器端设置一个代理,将客户端的请求转发到目标资源服务器,从而绕过浏览器的同源策略。 4. **Window.postMessage API**:用于在具有不同源的窗口之间进行通信,例如在嵌入的IFrame和父...
Nginx 是一款轻量级的 Web 服务器、反向代理服务器和电子邮件代理服务器,然而在实现跨域访问时,会遇到一些问题。本文将讨论 Nginx 实现跨域访问遇到的系统环境问题解决方法,并分享踩过的坑。 跨域是什么? -----...
代理服务会代替客户端向目标服务器发起请求,并将结果转发给客户端,从而规避跨域限制。 4. **配置API**:在使用ArcGIS API for Flex时,需要正确配置服务URL,确保它们指向已设置好跨域策略的资源。 5. **处理...
2. 配置代理:修改`proxy.config`文件,添加你需要通过代理访问的ArcGIS服务URL。 3. 在代码中使用代理:在调用ArcGIS API的函数时,将服务URL替换为代理服务器的URL,例如`...
配置proxy.config文件,设置ArcGIS服务的白名单,指定哪些服务允许通过代理访问。 2. **配置Web应用**:在你的ArcGIS JavaScript API应用中,设置proxyPath指向部署的代理服务URL。例如: ```javascript var map ...
Nginx作为一个反向代理服务器,可以接收来自客户端的请求,然后转发到后端服务器。我们可以通过配置Nginx,让它在转发请求前添加适当的响应头,使得浏览器允许跨域请求。 3. **Nginx 配置跨域** 在Nginx的配置...
它本质上是一个中间服务器,客户端的JavaScript请求首先发送到这个代理服务,然后由代理服务转发到实际的目标服务器,获取的数据再由代理服务返回给客户端,从而绕过了浏览器的同源策略。 ArcGIS JavaScript API中...
为了解决这个问题,代理服务器可以作为一个中介,转发请求并添加适当的`access-control-allow-origin`响应头,允许跨域请求。在这个Java代理服务中,开发者添加了CORS支持,解决了"access-control-allow-origin"缺失...
综上所述,这个项目提供了使用Java开发百度地图应用的实例,同时结合了PHP编写的SOCKS5代理库,适用于需要通过代理访问地图服务的情况。对于想要学习如何在Java项目中集成百度地图功能,以及如何处理网络代理的...
你需要设置允许通过代理访问的特定服务URL,这通常是你的地图服务API地址。 4. **配置Tomcat**:将`proxy.cgi`文件放置在Tomcat的Web应用程序目录下的`cgi-bin`子目录中。如果没有这个子目录,需要手动创建。例如,...
**中继服务器**:中继服务器是一种代理服务器,它的作用是作为客户端和目标服务器之间的中介。在这个项目中,map-api-relay-server可能是为了处理一些特定的需求,如缓解原地图API的请求限制、缓存数据、或者在多个...
3. **使用代理服务**:在某些情况下,可以创建一个中间代理服务,该服务运行在与你的应用相同的域上,它负责转发到其他域的请求。这样,所有请求都是同源的,避免了跨域问题。 4. **Silverlight安全设置**:在...
1. **配置反向代理**:反向代理服务器(如Nginx或Apache)可以接收来自不同源的请求,并将它们转发到同一源的资源。这样,不同域名的客户端可以通过代理服务器访问同一份资源,从而实现跨域。这种方法适用于完全控制...