我正在用Spring开发一台服务器。 在该服务器中,自几个月前以来,每分钟都有一些GET,POST API和一些设备在提供数据。
问题在这里。 我制作了一个GET API来响应客户端。
SELECT
a.Logid,
a.Userid,
a.CheckTime,
a.Name
FROM Checkinout a
JOIN
(SELECT
userid,
name,
dateinout,
Intime,
Outtime
FROM att
WHERE Intime BETWEEN '07:00:00.0000000' AND '11:00:00.0000000'
AND userid= 37
GROUP BY userid, dateinout, Intime, Outtime, name
HAVING COUNT(Intime)>1) b
ON a.Userid= b.userid
ORDER BY CheckTime ASC;
它有效。 我认为不会有错误,因为它是简单的测试API,并确保我为此进行了测试。 但是客户开发人员说,他们只能收到第97个请求。 这是客户端发送功能。
@GetMapping("/getTestData")
public String getTestData(@RequestParam String dev,@RequestHeader HttpHeaders header) {
System.out.println("header: " + header);
T_AIRWATCH_DATA data = null;
try{
data = service.getTestData(dev);
} catch(Exception e) {
e.printStackTrace();
}
if(data == null) data = new T_AIRWATCH_DATA();
String spd = new String();
Integer pm25 = data.getDust2_5();
if(pm25 < 10) spd="1";
else if(pm25 < 15) spd="2";
else if(pm25 < 20) spd="3";
else if(pm25 < 25) spd="4";
else spd="5";
String ret = "Device ID: " + dev + ", PM2.5: " + data.getDust2_5() + ", Speed: " + spd;
return ret;
}
他说,该请求(响应)在第97个请求之前均有效,而在第98个请求中则无效。客户说他们在第98个请求中得到了static int HTTPGetMethod(HTTPCli_Handle httpClient)
{
long lRetVal = 0;
HTTPCli_Field fields[4] = {
{HTTPCli_FIELD_NAME_HOST, HOST_NAME},
{HTTPCli_FIELD_NAME_ACCEPT, "*/*"},
{HTTPCli_FIELD_NAME_CONTENT_LENGTH, "0"},
{NULL, NULL}
};
bool moreFlags;
HTTPCli_setRequestFields(httpClient, fileds);
moreFlags = 0;
lRetVal = HTTPCli_sendRequest(httpClient, HTTPCli_METHOD_GET, GET_REQUEST_URI, moreFlags);
UART_PRINT("**********HTTPCli_sendRequest lRetVal = %d\n\r", lRetVal);
if(lRetVal < 0)
{
UART_PRINT("Failed to send HTTP GET Request. \n\r");
return lRetVal;
}
lRetVal = readResponse(httpClient);
return lRetVal;
}
。因此我实施了一个程序来请求服务器超过100次。
有用。
客户端还进行了测试,以请求使用httpbin.org服务器的服务器有100多个时间。效果也很好。
我不知道什么地方出了问题,应该怎么解决。 任何建议都是好的,例如“搜索---配置”。