OkHttp发起网络请求以及如何实现JSON/XML与对象的互转

这篇文章给大家介绍OkHttp发起网络请求以及如何实现JSON/XML与对象的互转,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

1. 添加okhttp,xtream,fastjson依赖:

OkHttp发起网络请求以及如何实现JSON/XML与对象的互转

Tip: 七牛jdk中包含了老版本的okhttp,需要先排除.

2. 配置okHttpClient,让spring自动装配:

放到标注有@Configuration的配置类中统一管理.

OkHttp发起网络请求以及如何实现JSON/XML与对象的互转

自动注入:

@Resource

private OkHttpClient okHttpClient;

3. GET请求JSON数据并封装成对象(记录用户登录的位置(HttpUtil.java):

OkHttp发起网络请求以及如何实现JSON/XML与对象的互转

okHttpClient.newCall(request).execute发起网络请求.

request:

    GET: new Request.Builder().url(url).build();

    POST: RequestBody requestBody = new FormBody.Builder()

                    .add("key","value")

                    .add("key","value")  

                    .build();

                new Request.Builder().post(requestBody).url(url).build();

使用JSON.parseObject(jsonString,object)JSON封装成对象,支持级联属性.

调用淘宝IP地址库: http://ip.taobao.com/service/getIpInfo2.php?ip=xxx ,返回:

OkHttp发起网络请求以及如何实现JSON/XML与对象的互转

获取客户端真实IP地址

参考: http://blog.csdn.net/z69183787/article/details/21187485

OkHttp发起网络请求以及如何实现JSON/XML与对象的互转

将返回信息抽象为一个类就可以自动封装了

domain/json/IpLocation.java

domain/Location.java

Location location = HttpUtil.getLocationByIP(request, okHttpClient);

4. GET请求XML数据并封装成对象:

OkHttp发起网络请求以及如何实现JSON/XML与对象的互转

Tip: 使用XStream转换XML之前,需要先注册对象.

xStream.processAnnotations(Class);

5. 对象转换为JSON:

JSONObject.toJSONString(object)

6. 对象转换为XML:

xStream.processAnnotations(class);

xStream.toXML(object);

Tip: 示例源码springboot-thymeleaf: org/ramer/demo/controller/DemoController.java

github: https://github.com/RamerF/spring-web.git

关于OkHttp发起网络请求以及如何实现JSON/XML与对象的互转就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。