首页 > 解决方案 > 如何判断 curl 在客户端或服务器上是否超时?

问题描述

我正在使用 curl 和 php 连接到资源(使用 GET 获取一些数据)。操作有时会失败。我看到的错误是“操作在 20001 毫秒后超时,收到 0 个字节”。我知道操作超时,但我如何检查是否发生在客户端或服务器端?我认为在我们到达目的地之前我的服务器可能会超时。

这是来自 curl 的数据

[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 20.001804
[namelookup_time] => 0.000198
[connect_time] => 0.016918
[pretransfer_time] => 0.059324
[size_upload] => 0
[size_download] => 0
[speed_download] => 0
[speed_upload] => 0
[download_content_length] => -1
[upload_content_length] => 0
[starttransfer_time] => 0
[redirect_time] => 0

标签: phpcurl

解决方案


如果服务器决定超时,它会发送一个状态为 408 的响应。请参阅https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/408

如果您没有收到此响应状态,那么是客户端厌倦了等待。


推荐阅读