我有一个 php 脚本,它通过 curl 请求与外部 API 通信。上周突然有些请求从服务器收到空响应,而不是请求的数据(尽管操作是在服务器上执行的)。受影响的包括上传图片或更新较大的数据集。在其他客户端上,相同的请求按预期工作,所以我怀疑这是客户端问题。所以我首先比较了 curl 版本:
客户端空响应:curl 7.64.0
客户端预期响应:curl 7.81.0
让我感到疑惑的是 curl 版本7.64.0和几周前一样,当时一切正常。所以我比较了 curl 发送到服务器的 HTTP 标头。结果发现,在客户端上使用 curl7.64.0标题中添加了“Expect: 100-continue”。在使用 curl 的客户端上不会出现这种情况7.81.0。因此,作为解决方法,我用“Expect:”覆盖了 curls HTTP 标头选项中的“Expect”值。现在它又按预期工作了。
这让我有几个问题:
为什么 curl7.64.0添加“Expect: 100-continue”并 curl7.81.0没有?
API 服务器对这些请求的响应为空,这是正确的吗?