首页 > 开放介绍 > 移动开放

移动开放

SDK包括的功能

一. Sdk环境.

1.1 android  sdk要求: 

      1.6及其以上版本

1.2 demo sdk要求:

       最低sdk版本2.2,推荐SDK 版本3.0,3.2 

1.3 SDK版本:

       移动android sdk1.0 

二.底层调用

底层调用服务端接口和jos2.0 api开放平台接口统一。相比较jos2.0接口,androidsdk1.0更加轻量级,非常适用于手机应用的敏捷开发。所有api调用前需要设置系统参数和应用参数两部分参数。所有api需要的系统参数都是统一的:

 

名称

类型

是否必须

描述

method

String

API接口名称

app_key

String

JOS分配给应用的AppKey

sign

String

API输入参数签名结果

timestamp

String

时间戳

format

String

响应格式,目前仅支持json

v

String

API,取 2.0.

其中, method,format,v都是sdk中已经封装好了的系统参数,timestamp现场生产,sign是根据app_key进行MD5签名生成而来,因此上述参数都无需开发者关心。开发者需要传入的参数是app_key另外,根据自己应用的情况来设置connectTimeout和readTimeout的值;推荐connectTimeout =30000,readTimeout=20000
三.  sdk接口详述

商城API

四.调用方式

首先需要四个参数(Url,Appkey,connectTimeOut,readTimeOut)构造一个DefaultJdMobileClient对象,然后根据自己的需求新建相应的Requsest对象并设置应用参数,最后得到解析后的Response,通过Response相对应的get方法获得对应的实体或实体列表对象。示例如下:(注: 所有的请求都在当前线程中完成,请不要在UI线程中直接发起以下请求,需要新建一个子线程去完成,具体操作可参考demo示例代码。)

1、360buy.warecats.get:

CategorySearchRequest request = new CategorySearchRequest();

DefaultJdMobileClient client= new DefaultJdMobileClient(urlappkey, connectTimeOut,readTimeOut);

request.setCid(cid); 

request.setLevel(level);

try

CategorySearchResponse response = defaultClient.execute(request); 

List categories = response.getCategorys();

} catch (JdException e) { 

       // TODO Auto-generated catch block 

       e.printStackTrace(); 

}

2.360buy.ware.get.attribute


DefaultJdMobileClient defaultClient= new DefaultJdMobileClient(url, appkey, connectTimeOut,readTimeOut);

CategoryAttributeSearchRequest request = new CategoryAttributeSearchRequest(); 

request.setCid(cid); 

try

CategoryAttributeSearchResponse response = defaultClient.execute(request);

List attributes = response.getWareAttributes() 

} catch (JdException e) { 

        // TODO Auto-generated catch block 

        e.printStackTrace(); 

}

3.360buy.ware.get.attvalue


WareSearchRequest request = new WareSearchRequest();   

request.setQ(title);       

request.setPage(fromWhichPage);

request.setPageSize(categoryCount);

WareSearchResponse response = null

try

 response= defaultClient.execute(request); 

} catch (JdException e) { 

    // TODO Auto-generated catch block

         e.printStackTrace();

List wares =response.getWareInfos();

4. 360buy.ware.get


WareAnotherBuyRecommendRequest request = new WareAnotherBuyRecommendRequest(); 

request.setWareId(value); 

try {      

        WareAnotherBuyRecommendResponse response = defaultClient.execute(request); 

} catch (JdException e) { 

        // TODO Auto-generated catch block 

        e.printStackTrace(); 

}

List wares =response.getWareList();

5.360buy.wares.list.get


public List regionInfoGet(){ 

        RegionInfoGetRequest request = new RegionInfoGetRequest();  

        RegionInfoGetResponse response = null

  try {

                       response = defaultClient.execute(request); 

        }catch(JdException e) { 

            // TODO Auto-generated catch block 

            e.printStackTrace(); 

        } 

        System.out.println("response"+response);    

        if(response == null||!response.getCode().equals("0")) 

        { 

            return null

        }   

        List regions = response.getRegions(); 

        return regions;

}

五.移动开放平台Jd-Android-sdk-1.0相对于pc开放平台jos的区别:

5.1.更加轻量级。 

相对于pc开放平台的大量接口而言,目前移动平台仅开放了手机客户端业务需求最迫切的分类,属性,商品,搜索等;同时,手机客户端不再借助第三方的工具类jar包,将jar包的容量控制到最小。即能充分满足手机开发的需求,又将手机敏捷开发的特点发挥得很好。 

5.2.更高的安全性。

Pc开放平台涉及较少的安全性问题,但是移动端开放平台面临更多的安全隐患。比如:移动端应用如果需要用户输入账号密码授权,会涉及到用户信息的泄漏;移动端如果在代码中静态引用用户应的appkey和appsecret,很有可能会被其他人通过反编译得到些信息,这是相当危险的。所以移动开发者直接利用jos api来开发自己的移动应用时十分危险的,sdk1.0版中目前尚未涉及授权应用和用户信息输入,只需要用appkey就可以访问得到数据,暂时没有安全性问题。

5.3.返回的数据进行了Android层面的再次封装。 

比如把类目(Category)的返回结果封装到了linearlayout当中;把三级类目的属性显示放到一个popupwindow,把地域信息封装到一个listview当中等。相关代码都在demo中可以找到,开发者可以选择适合自己应用的一种进行参考和改良,当然也可以不使用这层封装,直接在得到相关数据模型对象后自定义开发。