最近,我研究了spring网关以构建一个简单的系统,但遇到一个我无法解决的问题,所以我提出了这个问题,希望有人能解决这个问题。
问题: 我在本地tomcat上的本地环境中上传文件,上传后返回成功代码,但是,在linux上使用tomcat服务器返回错误代码。 查看reslut:
Linux环境:
不良回报:
{
"success": true,
"code": 200,
"msg": "操作成功",//Chinese language
"list": {
"name": "??????-v1.1.xls",//bad code
"url": "group1/M00/00/07/wKgIXVyPN52AXYgIAADOADqWDYw968.xls"
}
}
本地环境: 成功翻身:
{
"success": true,
"code": 200,
"msg": "操作成功",//Chinese language
"list": {
"name": "接口设计格式-v1.1.xls",
"url": "group1/M00/00/07/wKgIXVyPOliASi03AADOADqWDYw926.xls"
}
}
我搜索支持zn_utf-8的vmare linux。
我的zull配置代码:
@Override
public Object run() {
// 接口返回相应处理
RequestContext context = RequestContext.getCurrentContext();
HttpServletRequest request = context.getRequest();
String method = request.getMethod();
String requestURI = request.getRequestURI();
System.out.println(method +"-"+requestURI);
long count = Arrays.asList(export).stream().filter(str -> str.equals(requestURI)).count();
if(count > 0) {
return null;
}
InputStream stream = context.getResponseDataStream();
try {
String body = StreamUtils.copyToString(stream, Charset.forName("UTF-8"));
Map<String, Object> parseObject = JSON.parseObject(body, Map.class);
if(parseObject.get("error") != null) {
if(parseObject.get("error").toString().equals("invalid_grant")) {
if(parseObject.get("error_description").toString().indexOf("Bad credentials") >= 0) {
body = JSON.toJSONString(WriteJson.error(990, "用户名或密码错误"));
}
if(parseObject.get("error_description").toString().indexOf("Invalid refresh") >= 0) {
body = JSON.toJSONString(WriteJson.error(991, "无效token"));
}
}
if(parseObject.get("error").toString().equals("Unauthorized")) {
body = JSON.toJSONString(WriteJson.error(992, "错误的令牌"));
}
if(parseObject.get("error").toString().equals("invalid_token")) {
body = JSON.toJSONString(WriteJson.error(993, "token已过期"));
}
}
if(parseObject.get("access_token") != null) {
Map<String, Object> map = new HashMap<>();
map.put("access_token", parseObject.get("access_token"));
map.put("refresh_token", parseObject.get("refresh_token"));
map.put("expires_in", parseObject.get("expires_in"));
body = JSON.toJSONString(WriteJson.successData(map));
}
context.setResponseBody(body);
} catch (IOException e) {
context.setResponseBody(JSON.toJSONString(WriteJson.error()));
}
return null;
}
最后,我找到了spring.com网站,大多数人都回答了这个问题,spring work编码器已经解决了这个问题,我不知道。