php 发送 curl 请求并等待响应

标签 php curl

我正在向服务器发送 curl 请求,服务器需要几秒钟的时间来处理请求并发出响应。我相信我的 php 脚本正在继续而不是等待,因此我基于响应的 foreach 循环吐出 0 个结果。在继续处理数据之前,如何等待 curl 事务完成?

  $curl = curl_init();
  curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
  curl_setopt($curl, CURLOPT_USERPWD, "admin:password");
  curl_setopt($curl, CURLOPT_URL, "http://server/r/?dst_user__substr='user'");


  curl_setopt($curl, CURLOPT_VERBOSE, 1);
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  $ret = curl_exec($curl);
  $result = json_decode($ret,true);

 <<<<I need to wait until transaction is complete here>>>>

  foreach ($result['data'] as $key => $value)
  {
        //process data from $result
  }

最佳答案

curl 是阻塞的,这意味着:

$result = json_decode($ret,true);

foreach ($result['data'] as $key => $value)
{
      //process data from $result
}

不会执行直到:

$ret = curl_exec($curl);

完成。您可以使用 curl_error() 检查错误和其他问题,并使用 curl_getinfo() 检查 HTTP 响应代码。

关于php 发送 curl 请求并等待响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19817401/

相关文章:

php - 为 Apple-news 创建文章的工作 PHP 代码

php - mysql,如何从数据库中删除选定的数据?

php - 使用户处于事件/非事件状态 PHP MySQL

curl - 如何在 gitlab-ci 中使用变量在松弛 channel 中发送通知

python - 重写一个curl post调用,并根据请求在Python中上传文件

shell - 循环 curl 调用并在出现错误之前计算成功响应

php - PHP解析/语法错误;以及如何解决它们

php - 正在生成新 ID : Getting actual IDs

php - 成功订购后 Woocommerce 自定义库存更新

php - 获取URL前的参数