1.安卓app客户端与后台的接口一般有两种:@POST与@GET


        @POST

@Path("/updateuserdetail/")

@Consumes("application/x-www-form-urlencoded;encoding=utf-8")

@Override

public AppBean updateuserdetail(@FormParam("username") String username,

@FormParam("password") String password,

@FormParam("occupation") String occupation,

@FormParam("income") String income,

@FormParam("email") String email,

@FormParam("phonenum") String phonenum,

@FormParam("married") String married) {}

------------------------------------------------------------------------------------------

        @GET

@Path("/goodsListByType/{pageno}/{type}")

@Override

public AppBean getGoodsList(@PathParam("pageno") String pageno,

@PathParam("type") String type){}

-------------------------------------------------------------------------------------------


@GET接口通过地址栏直接获取测试:

例如上面这个接口,地址栏直接输入:

http://localhost:端口号/项目名称/api/api/goodsListByType/pageno/type/

第一个api是Struts.xml配置的

(<constant name="struts.action.excludePattern" value="/api/.*" />),

后一个是applicationContext.xml配置的

      <jaxrs:server  address="/api">

<jaxrs:serviceBeans>

<ref bean="appService" />

</jaxrs:serviceBeans>

<jaxrs:providers>

      <bean class="org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider"/>    

   </jaxrs:providers>

</jaxrs:server>

网上百度找到了大神们说的postman谷歌浏览器插件

get界面如下:

wKioL1ZhDvHRDajGAACgVP3Wq38086.png

post界面如下:


wKiom1ZhDqPTEx0xAADL145zZ5o542.png

2016-01-13:最近做的数据采集的项目要用到json数据批量入库的需求,今天后台基本完成,把这次的json的后台接口在这里补充下,也让自己回顾下这几天的学习过程,我还是小白,要学的还很多。。。

  1. 首先这次接口接收到的是json数据。

  什么是json数据:

[

    {

        "action_time": "Jan 12, 2016 9:39:32 AM",

        "imei": "867676026061019",

        "imei_md5": "effbda25da3fcf80c4b9df019bb61589",

        "sdk_id": "T000",

        "ssaid": "2679251adb4bfb97",

        "ssaid_md5": "4f5ac5cc969ac09d083ca02037b18579",

        "sys_model": "H60-L01",

        "sys_ram": "2.94GB",

        "sys_screen_size": "1080:1776",

        "sys_version": "4.4.2"

    }

]

注释:json数据中可包含多个[],一个[]对应一个对象,{}里面的就是对象的元素,冒号前面的为对象属性,后面为这个属性的值。


相比之前的那些传参数的接口要快好多,也方便好多,以后像这种批量入库的都可以用json数据格式来传参。废话不多说看接口:(不同之处自己比较下就知道了)

        @POST

@Path("/creatNet_type/")

 //这里注意下数据格式,测试的时候用 application/json

@Consumes("application/x-www-form-urlencoded;encoding=utf-8")  

public AppBean creatNet_type(@Formpath String json) {   //这里注意参数 String类型

               //这里json数据不能直接使用

                JSONArray ja = new JSONArray(json);

            List<Object> objectList = new ArrayList<Object>();

                //循环json对象

                for (int i = 0; i < ja.length(); i++) {

               Object object = new Object ();

                     //获取json对象里的“element”元素的数据set给对象响应的属性

          object .setElement(ja.getJSONObject(i).getString("element"));

                     //将对象添加到数组中

               objectList .add(object);

}

                        //循环入库      

              for (int i = 0; i < nettypeList.size(); i++) {

                   Object obj = objectList .get(i);

              objectService.create(obj);//封装的入库方法

}

}

对应的postman界面

wKioL1aWDqrBoKRvAADTPCbQ1Q4037.png