今天遇到一个问题,重构老系统时,前端传递的参数是一个json,controller层能够用@ResponseBody来接收。
由于新系统用的是spring cloud这一套,调用其余服务使用的是feign的形式,找了一圈没有找到合适的方案,因而用OkHttpClient来处理了,这里作个记录。(仍相信feign也能处理,可是刚上手spring cloud,不少都还不是很熟,这里备注做为本身todo的事项)html
先看看参数格式:前端
再看看controller层:spring
这里使用@RequestBody就能够直接接收到了,后面就直接铺上OKHttpClient的解决代码:json
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微信
分类: 工做经验app
一枝花算不算浪漫
post