php - 如何判断 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
解决方案
如果服务器决定超时,它会发送一个状态为 408 的响应。请参阅https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/408。
如果您没有收到此响应状态,那么是客户端厌倦了等待。
推荐阅读
- amazon-web-services - 如何在 AppSync Resolver 中仅使用 `ctx.identity.cognitoIdentityId` 获取相关的 Cognito 用户池用户数据?
- asp.net - 将 Elasticsearch 与 .Net Core 2.2 一起使用是否可行?如何配置它以获取简单的获取查询 API?
- javascript - 如何从客户端构建查找查询以搜索 mongo db?
- php - 在级联下拉列表中显示容易选择的数据
- html - 为什么 chrome 在我的表单的某个字段中显示地址建议?
- mysql - JDBCTemplate 不处理数据库中的 Unicode 字符
- sql-server - 许多表上的 EF Core 一对一关系允许重复条目
- node.js - 在使用 chai 进行测试期间无法将错误与 throw 匹配
- java - Unknown name value [] for enum class having multiple enums
- c++ - 使用 cmake 在 macOS 上共享库的链接器问题