目前碰到过两种情况,一种是服务端返回JSON格式,但是客户端接受到的JSON数据被截断,可以把JSON数据拷贝到文本文件,可以明显看到JSON被截断的情况,处理方法在Nginx中配置如下:
fastcgi_buffers 8 4K;
fastcgi_buffer_size 4K;
fastcgi_buffers 控制 nginx 最多创建 8 个大小为 4K 的缓冲区,而 fastcgi_buffer_size 则是处理 Response 时第一个缓冲区的大小,不包含在前者中。所以总计能创建的最大内存缓冲区大小是 8*4K+4K = 36k
第二种情况是服务端已经返回所有JSON数据,但是解析不了,这种情况一般是返回的JSON数据解析异常,可以拿一些JSON工具查看是否返回的JSON格式问题,当前JAVA项目中的一个swagger注解导致:
//异常的swagger注解,这种写法会返回数据,但是客户端解析不了,导致swagger文档不能生成
@Schema(example="[a,b]")
//正确的做法
@Schema(example="[\"a\",\"b\"]") OR @Schema(example="a,b")
example属性作用是在swagger文档上注解所在的属性的使用示例