首页 > 解决方案 > 特定的 API 调用仅在生产服务器中不起作用

问题描述

我已经尝试调试和诊断此问题将近 2 个月,但无济于事。这是我最后的手段。长话短说(尽可能短):

在我为客户端(php/laravel)开发的应用程序中,我们连接到外部 API(在中国),以从连接云的监控设备获取数据。API 调用有点复杂,因为需要使用一堆取决于请求的时间和内容的神秘散列来生成标头。没问题,一切正常。

到了 8 月 12 日,它出乎意料地失败了,不再获取任何数据并且没有给出错误。我对应用程序代码进行了一些更改(尽管不是那部分),所以我在我的机器和登台服务器上进行了测试,所有这些都运行相同的代码,并且一切正常。它只会在生产中失败。

我们认为这可能是连接问题,甚至是被列入黑名单的 IP,但这些选项已被丢弃。

更糟糕的是,我开始通过命令行 curl 进行连接(以确保应用程序没有导致问题)并且问题仍然存在。除生产外,可在任何地方工作。然后我发现,如果我使用格式错误的标头(故意写错签名或其他),API 会以错误响应(如预期的那样)。所以它肯定不是任何形式的连接。当标题格式正确时,该命令可以在除生产环境之外的任何地方使用。没有对任何系统库进行更新。

我试图通过命令行诊断 curl 以查看它输出了什么样的错误。结果让我更加困惑:没有错误,没有返回码,什么都没有。它只返回空白(零字节)。

这是一个格式错误的请求,这使得 API 返回失败(如预期的那样)

在此处输入图像描述

这是一个很好的请求,返回 0 个字节(不是预期的):

在此处输入图像描述

我完全不知道该怎么做……没有想法了。API 方面的人说他们自己做了诊断,没有发现任何问题。

接下来我可以尝试什么?

提前致谢!

标签: phpapicurl

解决方案


推荐阅读