标签:接口 http cat size wiki 字符串 efault inf bug
1。检查系统日志
发现这个报错信息,导致接口访问超时获取数据失败。
2。经过对网上信息梳理,发现这个超时是在用域名访问nginx时候,有一个send_timeout超时时间,超过这个时间nginx将连接断开了。代码会报错
3。由于这个请求的数据大小只有2M,大概四千条数据,响应不应该这么慢,然后开始debug查询问题。
4。看图
这个是httpUtil的一个工具类,可以看到这行代码是有问题的。
下面一段代码。把他生成的字节码进行反编译,看看结果。
String testJoin = "testJoin";
String introduce = "测试数据拼接";
String result =
testJoin + "," + introduce;
反编译后的内容如下,反编译工具为jad。
String
testJoin= "testJoin";
String introduce = "\u6BCF\u65E5\u66F4\u65B0Java\u76F8\u5173\u6280\u672F\u6587\u7AE0";
String
result= (new StringBuilder()).append(testJoin).append(",").append(introduce).toString();
通过查看反编译以后的代码,可以发现,原来字符串常量在拼接过程中,是将String转成了StringBuilder后,使用其append方法进行处理的。
改动代码为如下:
这样处理数据的时候就非常快,问题看似已经解决。
由Premature end of Content-Length delimited message body因发的问题排查
标签:接口 http cat size wiki 字符串 efault inf bug
原文地址:https://www.cnblogs.com/technologykai/p/13365603.html