`
y806839048
  • 浏览: 1080246 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

restfull接口 Retrofi

 
阅读更多
引入Retrofitt需要引入以下lib:
Retrofit转换器(JSON<->OBJECT)
所有拦截的类型在写路劲的时候不体现,访问的时候才体现
<servlet-mapping>
        <servlet-name>springMvc</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping>
范围拦截配置文件拦截的路劲控制层省略,请求时加上
localhost:8080/employeeBenefits-main/rest/admin/home

@RequestMapping(value = "admin/home")控制层不需要rest 作为服务的具体实现,

@RequestMapping(value = "admin/home")
@ResponseBody
// @RepeatToken
public String home(DemoRequestBean requestBean,HttpServletRequest request) {
String userId =(String) request.getHeaders("userId").nextElement();


概览:将你的请求API定义在一个Java 接口中:  二级地址
public interface DemoClient {
@POST("/getMemberId")
    DemoResponseBean getMemberId(@QueryMap Map requestBean);

@POST("/rest/admin/home")//这个地方要写拦截标记
    String getHome(@Header("userId") String userId);

}



=====将/admin/home对应control所在服务作为rest服务,一级地址
public class RetrofitUtil {
private static String ROOTURL="http://localhost:8080/employeeBenefits-main";
//getMemberId?residentUuid=38248274832_798749   MemberDataCenter/MemberService   http://172.16.73.80:7075
private static RestAdapter singleton; 
private static Map<String ,Object> serviceMap=new HashMap<String,Object>();
    public static RestAdapter getRestAdapter() { 
        if (singleton == null) { 
            synchronized (RetrofitUtil.class) { 
                if (singleton == null) { 
                    RestAdapter.Builder builder = new RestAdapter.Builder(); 
                    builder.setEndpoint(ROOTURL);//设置远程地址 
//                     builder.setConverter(new GsonConverter(GsonUtils.newInstance())); 
//                     builder.setClient(new OkClient(OkHttpUtils.getInstance(context))); 
//                     builder.setLogLevel( 
//                             Config.DEBUG ? RestAdapter.LogLevel.FULL : RestAdapter.LogLevel.NONE); 
                    singleton = builder.build(); 
                } 
            } 
        }
        return singleton;
    }
@SuppressWarnings("unchecked")
public static <T> T getService( Class<T> clazz){
    T t=(T) serviceMap.get(clazz.getName());
    if(t==null){
    t=getRestAdapter().create(clazz);
    serviceMap.put(clazz.getName(),t);
    }
    return t;
   
    }
}

=============================
调用端:
public static void test1(String token) {
DemoClient service = RetrofitUtil.getService(DemoClient.class);
Map requestBean =new HashMap();
requestBean.put("credentialNo","00010101");
requestBean.put("credentialType","01");
        String rtn=service.getHome("2");
System.out.println("=======final==============="+rtn);
// DemoService service2 = RetrofitUtil.getService(DemoService.class);
// DemoRequestBean requestBean2 =new DemoRequestBean();
// requestBean2.setCredentialNo("00010101");
// requestBean2.setCredentialType("01");
// DemoResponseBean rtn2=service2.getMemberId(requestBean2,34);
// if(service2==service){
// System.out.println("相等");
// }
// System.out.println(rtn2.getIsMember()+":"+rtn2.getMemberId());
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics