使用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一下}}
相关文章推荐
- 自己动手写爬虫
- HTTP协议简介
- 网络笔试面试题
- 马哥linux网络班三期作业(3)
- LAMP环境添加SSL证书,使网站变成HTTPS加密传输
- [转]浅谈TCP/IP网络编程中socket的行为
- Linux网络编程之IO模型
- OVS初级教程:使用open vswitch构建虚拟网络(转载)
- Socket网络编程--Libev库学习(1)
- 笔记(3):卷积神经网络(1)
- 轻量级网络库libevent初探
- 利用http协议实现小型Web服务器
- Recurrent Neural Networks 循环神经网络
- VMware Workstation下VMnet1等虚拟网卡与主机网卡之间的关系
- awk 部分 cut部分 &&网络部分复习
- 数据库中间件Mycat源码解析(二):Mycat的网络通讯层
- 三种基本网络加载图片方式
- Android okHttp总结篇一
- 字节序类型
- 马哥linux网络班三期作业(3)