简单实现ws服务代理

    /**
     *   soap本质上走的是http协议,所以获取body内容,通过post方式调用soap服务,再获取结果,以xml形式返回
     *   代码基于resty,和jfinal有少许差别,改动也容易
     */
    @POST
    public void proxySoap() throws IOException {
        int len = getRequest().getContentLength();
        InputStream is = getRequest().getContentStream();
        byte[] buffer = new byte[len];
        is.read(buffer, 0, len);
        String data = new String(buffer, "UTF-8");
        
        Map<String, String> headers = getRequest().getHeaders();
        String clientIp = getRequest().getClientAddress();
        headers.put("X_REAL_IP", clientIp);  // 加上真实调用方IP
        
        String url = Proper.get("realservice");
        
        String ret = HttpKit.post(url, data, headers);
        
        HttpResponse response = this.getResponse();
        response.setContentType("application/xml");
        response.getWriter().write(ret);
    }


评论区

热门分享

扫码入社