您的位置:首页 > 理论基础 > 计算机网络

使用okhttp androidannotaion springandroid 等框架搭建请求网络的框架

2016-08-21 11:12 721 查看
以前刚刚开始学习android的时候,使用原生的,比如httpurlconnection.....,后面学习用一些框架,比如volley、xutils等框架,但现在公司使用的是几个库组成的框架,就像retrofit+RXandroid+dragger,这里使用okhttp+jackson+androidannotation+androidspring框架。第一步:引入对应的库(这里只说android studio的方法(现在写android最好不要用eclipse了....))引入(1).androidanotation http://www.2cto.com/kf/201507/417313.html(2)引入okhttp compile 'com.squareup.okhttp:okhttp:2.4.0'(3)引入androidspring
compile 'org.springframework.android:spring-android-rest-template:2.0.0.M1'
(3)引入jackjson
compile 'com.fasterxml.jackson.core:jackson-core:2.6.3'
compile 'com.fasterxml.jackson.core:jackson-databind:2.6.3'
compile 'com.fasterxml.jackson.core:jackson-annotations:2.6.3'
第二步:搭建一个rest客户端代码如下
<pre name="code" class="java">package com.example.meisini.net;

import com.example.meisini.bean.Goods;
import com.example.meisini.utils.Constant;

import org.androidannotations.annotations.rest.Get;
import org.androidannotations.annotations.rest.Rest;
import org.androidannotations.api.rest.RestClientErrorHandling;
import org.androidannotations.api.rest.RestClientHeaders;
import org.androidannotations.api.rest.RestClientRootUrl;
import org.springframework.http.client.OkHttpRequestFactory;
import org.springframework.http.converter.FormHttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;

/**
* Created by 曾志强 on 2016/8/4.
*/
/**
* @author ZZQ
*/
@Rest(rootUrl = Constant.HOST,
converters = {FormHttpMessageConverter.class,
MappingJackson2HttpMessageConverter.class
},
requestFactory = OkHttpRequestFactory.class)
public interface IMasterService extends RestClientRootUrl, RestClientHeaders, RestClientErrorHandling {
@Get("/ecmobile/?url=/category")
Goods getGoodsList();
}
第三步:建立javabean和服务端的json数据进行映射
package com.example.meisini.bean;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;

import java.io.Serializable;
import java.util.List;

/**
* Created by 曾志强 on 2016/8/4.
*/
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Goods implements Serializable{
private List<GoodsData> data;

public List<GoodsData> getData() {
return data;
}

public void setData(List<GoodsData> data) {
this.data = data;
}

@Override
public String toString() {
return "Goods{" +
"data=" + data +
'}';
}
}
第三步使用(注意一定要在子线程中调用)
public class Test{@BeanIMasterRest rest;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}@Backgroundpublic void getMsg(){Goods goods=rest.<span style="font-family: Arial, Helvetica, sans-serif;">getGoodsList()</span>;  //有必要catch一下}}
                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: