使用OkHttpClient处理json请求处理的方式

今天遇到一个问题,重构老系统时,前端传递的参数是一个json,controller层可以用@ResponseBody来接收。 因为新系统用的是spring cloud这一套,调用其他服务使用的是feign的形式,找了一圈没有找到合适的方案,于是用OkHttpClient来处理了,这里做个记录。(仍相信feign也能处理,但是刚上手spring cloud,很多都还不是很熟,这里备注作为自己todo的事项)

先看看参数格式:

再看看controller层:

这里使用@RequestBody就可以直接接收到了,后面就直接铺上OKHttpClient的解决代码:

public String createBatch(String jsonString, String url) {
        MediaType json = MediaType.parse("application/json; charset=utf-8");
        RequestBody requestBody = RequestBody.create(json, jsonString);
        Request requestPost = new Request.Builder()
                .url(url)
                .post(requestBody)
                .build();
        Response response = null;
        String result = null;
        try {
            response = client.newCall(requestPost).execute();
            if (response.body() != null) {
                result = response.body().string();
            }
        } catch (IOException e) {
            throw new WebCatException(500, e.getMessage());
        }

        if (StringUtils.isNotBlank(result)) {
            JSONObject jsonObject = JSONObject.parseObject(result);
            result = jsonObject.getString("data");
        }

        return result;
    }

参考:https://blog.csdn.net/zhan10001/article/details/78461143

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏刘望舒

Android网络编程(二)HttpClient与HttpURLConnection

相关文章 Android网络编程(一)HTTP协议原理 前言 上一篇我们了解了HTTP协议原理,这一篇我们来讲讲Apache的HttpClient和Java的...

1837
来自专栏晓晨的专栏

ASP.NET Core 判断请求是否为Ajax请求

811
来自专栏用户3030674的专栏

java Http消息传递之POST和GET两种方法--通过实用工具类来获取服务器资源

/** * 实用工具类来获取服务器资源 * * get方法传送数据 * * 1、通过path设定传送方式 * 2、创建客户端 *...

864
来自专栏Java帮帮-微信公众号-技术文章全总结

Web-第十天 Cookie&Session学习

当用户访问某些Web应用时,经常会显示出该用户上一次的访问时间。例如,QQ登录成功后,会显示用户上次的登录时间。通过本任务,读者将学会如何使用Cookie技术实...

1113
来自专栏Spark生态圈

[spark] Standalone模式下Master、WorKer启动流程

而Standalone 作为spark自带cluster manager,需要启动Master和Worker守护进程,本文将从源码角度解析两者的启动流程。Mas...

1192
来自专栏猿天地

Spring Cloud Gateway重试机制

重试,我相信大家并不陌生。在我们调用Http接口的时候,总会因为某种原因调用失败,这个时候我们可以通过重试的方式,来重新请求接口。

1603
来自专栏IT技术精选文摘

基于ZooKeeper的分布式Session实现

862
来自专栏androidBlog

Retrofit使用教程(一)- Retrofit入门详解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gdutxiaoxu/article/details/...

411
来自专栏Java Edge

Cookie设置HttpOnly属性

在Servlet 3.0中增加对Cookie(请注意,这里所说的Cookie,仅指和Session互动的Cookie,即人们常说的会话Cookie)较为全面的操...

9707
来自专栏你不就像风一样

深入理解跨域SSO原理与技术

​ SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登...

671

扫码关注云+社区