Facade门面系统透传接口

import com.sun.jersey.api.core.InjectParam;
import com.sun.jersey.api.representation.Form;
import com.sun.jersey.server.impl.application.WebApplicationContext;
import com.sun.jersey.spi.container.ContainerRequest;


import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.*;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.UriInfo;


@Path("pass")
public class PassResource {


	@InjectParam
	private FacadeProvider facadeProvider;
    
    @GET
	@Path("/{server}/{path:.*}")
	@Produces(value = MediaType.APPLICATION_JSON)
    public String rarvPass(@PathParam("server") String server, @PathParam("path") String path, @Context HttpServletRequest request){
    	BaseFacade facade = facadeProvider.getFacade(server);
    	if(facade != null){
    		FacadeParams param = new FacadeParams().withUrl(path).withUser(currentUser().getId());
    		Enumeration<String> paramNames = request.getParameterNames();
 	        while (paramNames.hasMoreElements()) {
 	        	 String paramName = paramNames.nextElement();
 	        	 String[] paramValues = request.getParameterValues(paramName);  
 	        	 for(String v : paramValues){
 	        		 param.addQueryParam(paramName, v);
 	        	 }
 	        }
    		return facade.getString(param);
    	}else{
    		return String.format("ERROR : wrong server (%s).", server);
    	}
    }
    
    @POST
	@Path("/post/{server}/{path:.*}")
	@Produces(value = MediaType.APPLICATION_JSON)
    public String rarvPostPass(@PathParam("server") String server, @PathParam("path") String path, @Context HttpServletRequest request,@Context UriInfo ui){
        BaseFacade facade = facadeProvider.getFacade(server);
        Form form = ((WebApplicationContext)ui).getContainerRequest().getFormParameters();
    	if(facade != null){
    		FacadeParams param = new FacadeParams().withUrl(path).withUser(currentUser().getId());
            if(form != null){
                for(Map.Entry<String,List<String>> entry : form.entrySet()){
                    for(String tmp : entry.getValue()){
                        param.addFormValue(entry.getKey(),tmp);
                    }
                }
            }
    		return facade.post(param);
    	}else{
    		return String.format("ERROR : wrong server (%s).", server);
    	}
    }
}
Postman请求数据时使用x-www-form-urlencoded
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值