feign的接口是这样的。在另一个controller 里得到的byte只有43b。并且不受这里的byte[] data影响。path可以正常接收。
以下图片是接收参数的controller。
解决方法。一个请求只能有一个requestbody。而公司的全局feign配置中截取了请求体的数据而放到requestbody里面了,所以我获得的数据不正确。相关配置代码:Enumeration<String> bodyNames = request.getParameterNames();
StringBuffer body = new StringBuffer();
if (bodyNames != null) {
while (bodyNames.hasMoreElements()) {
String name = bodyNames.nextElement();
String values = request.getParameter(name);
body.append(name).append("=").append(values).append("&");
}
}
if (body.length() != 0) {
body.deleteCharAt(body.length() - 1);
template.body(body.toString());
}
参数名保持一致
一致了还是不行
总监说让我放到map里传过去再拿出来,结果报JSON parse error: Unrecognized token 'contractId': was expecting ('true', 'false' or 'null'); nested exception is com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'contractId': was expecting ('true', 'false' or 'null')\n at [Source: (PushbackInputStream); line: 1, column: 12]
博客园很多这个问题的文章把
– 快乐的凡人721 2年前@快乐的凡人721: quo实木有
– 一个郭大侠 2年前@一个郭大侠: 搜索,,使用 feignclient上传文件、坑 啥的
– 快乐的凡人721 2年前