我遇到过这样的问题:我的服务器似乎在客户端超时或返回一些错误后收到了来自客户端的http请求。我想知道我的服务器是否有可能在超时后收到http请求?我在客户端的代码:
while(1)
{
std::cout << "=====post once>>>>>>>>>>>" << std::endl;
auto res = Post(route.c_str(), content, "text/plain");
if((res == nullptr) || (res->status != 200))
sleep(3);
else
{
if (res) {
// std::cout << res->status << std::endl;
std::cout << res->body << std::endl;
}
break;
}
}
我将在超时或错误请求后重试post。在某些WIFI不好的情况下,服务器会在很短的时间内收到两个http post。似乎一个http请求在错误或超时后首先到达服务器,然后另一个http请求必须到达服务器,因为while(1)。有人能回答我的问题吗?谢谢
发布于 2019-09-16 06:01:09
当然可以。例如,由于网络延迟,当服务器向客户端发送响应时,可能会发生超时。在这种情况下,服务器接收到请求,对其进行适当处理并发送响应。客户没有收到回复。
如果您正在重复来自客户端的请求,那么设计您的API以使服务器能够正确处理重复的请求(例如,在请求中包含一些id )是一个好主意。
https://stackoverflow.com/questions/57950983
复制相似问题