【问题标题】:Is there any posibility that a HTTP request succeed after the timeout超时后HTTP请求是否成功
【发布时间】:2019-09-16 05:45:42
【问题描述】:

我遇到过这样的问题:似乎我的服务器在超时或客户端返回一些错误后收到了来自客户端的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;
            }
        }

我将在超时或错误请求后重试发布。在某些情况下,WIFI 很差,服务器会在很短的时间内收到两个 http 帖子。似乎一个 http 请求在发生错误或超时或类似情况后首先到达服务器,然后另一个 http 请求到达服务器,因为 while(1). 谁能回答我的问题?谢谢

【问题讨论】:

    标签: http timeout


    【解决方案1】:

    当然可以。例如,由于网络延迟,服务器向客户端发送响应时可能会发生超时。在这种情况下,服务器收到请求,对其进行适当处理并发送响应。只是没有响应客户。

    如果您重复来自客户端的请求,最好设计您的 API,以便服务器可以正确处理重复请求(例如,在请求中包含一些 id)。

    【讨论】:

    • 谢谢,@pin2t。感谢关于发送带有 id 的请求的建议,我们现在正计划编写这样的代码
    猜你喜欢
    • 1970-01-01
    • 2021-01-28
    • 2015-10-11
    • 1970-01-01
    • 1970-01-01
    • 2014-09-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多