OkHttp发起网络请求以及如何实现JSON/XML与对象的互转
这篇文章给大家介绍OkHttp发起网络请求以及如何实现JSON/XML与对象的互转,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
1. 添加okhttp,xtream,fastjson依赖:
Tip: 七牛jdk中包含了老版本的okhttp,需要先排除.
2. 配置okHttpClient,让spring自动装配:
放到标注有@Configuration的配置类中统一管理.
自动注入:
@Resource
private OkHttpClient okHttpClient;
3. GET请求JSON数据并封装成对象(记录用户登录的位置(HttpUtil.java):
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 ,返回:
获取客户端真实IP地址:
参考: http://blog.csdn.net/z69183787/article/details/21187485
将返回信息抽象为一个类就可以自动封装了:
domain/json/IpLocation.java
domain/Location.java
Location location = HttpUtil.getLocationByIP(request, okHttpClient);
4. GET请求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与对象的互转就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。