公司项目有遇到这个问题,调用别人的接口。真是神tm Internal Error。这个问题百度都查不到。我可能是历史上唯一出现这个问题的女纸。
其实一般遇到这个问题,Internal Error内部错误,就是服务端那边接收你的参数,然后判断你的参数,不给通过,但是具体什么原因也没告诉你。
【解决办法】
对方给的示例代码中的参数写死的,运行没问题的,到项目上跑起来就报错了。于是我拿写死的参数和项目发送的参数作对比。还真是我参数传错了。
就是
//项目代码
public void func(){
Item item = new Item();
String id = "123";
Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmssSSS“);
String timeStr = format.format(date);
String issue = timeStr.subString(14);
item.setId(id);
item.setTimeStr(timeStr);
item.setIssue(issue);
webService.send(item);
}
//对方给的示例代码
Item item = new Item();
item.setId("123");
item.setTimeStr("20210114183501");
item.setIssue("20210114183501");
webService.send(item);
发现问题了么?我的项目代码中timeStr的长度是多少?issue的长度是多少?
示例代码中给出的timeStr长度是14,issue和timeStr是一样的,长度也是14;
我的项目代码运行起来,timeStr是16位数,然后,我的issue给截掉了,是前面14位截掉了。。。所以issue的长度是3。。。
这怎么可能通得过?所以人家服务端给你报了内部错误!
于是我修改了一下代码,如下:
public void func(){
Item item = new Item();
String id = "123";
Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmssSSS“);
String timeStr = format.format(date).subString(0,14);
String issue = timeStr;
item.setId(id);
item.setTimeStr(timeStr);
item.setIssue(issue);
webService.send(item);
}
如此,问题得以解决!