【问题标题】:Callback for cURL in PHPPHP 中 cURL 的回调
【发布时间】:2014-03-07 03:12:26
【问题描述】:

我有一个单点登录系统,需要在 2 个服务器之间进行通信。子服务器向父服务器发送一些东西进行验证,它是有效的,然后注册用户,如果没有,则返回错误消息,说“数据库中已经存在电子邮件”等。

我想知道有什么方法可以在 cURL 中做到这一点吗?

所以孩子可以发送如下验证请求:

              $ch = curl_init();
              curl_setopt($ch, CURLOPT_URL, $url);
              curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //this prevent printing the 200json code
              curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3); //timeout 1s
              curl_setopt($ch, CURLOPT_TIMEOUT, 3); //timeout 1s
              curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
              $result = curl_exec($ch);
              curl_close($ch);

似乎 "$result = curl_exec($ch);" 是结果(回调)。现在只有200。有没有一种方法可以通过 this 或通过 curl 的其他参数(如回调)传递验证错误/成功?我应该如何在父服务器中编写代码(谁正在卷曲并将响应发回)?我应该只执行“echo $error;”将结果返回给孩子吗?

【问题讨论】:

  • 如果你不知道它是什么,var_dump它。
  • @DissidentRage 现在只有 200 个。我想知道如何使它成为验证错误。所以我可以将验证错误/成功从父级传递给子级。

标签: php curl


【解决方案1】:

PHP 中没有回调。 (几乎)在 PHP 中一切都是同步的,而回调原理对于异步编程很有用。

更新:函数curl_getInfo() 将为您提供有关上次请求的更多详细信息。

【讨论】:

  • 谢谢!但是我怎样才能使 $result 不是 200 ..?喜欢如何在这里传递错误?
  • 把网址改成假的;或断开您的网线;)
  • 我更新了我的答案,因为我记得 curl_getinfo() 的存在
  • 我觉得有误会。我在问如何从父服务器传递错误消息,例如“无效的用户名”。感谢您的帮助!
  • 只需返回您要传输的信息。例如,使用 isError() 方法、代码和消息创建结果对象,并使用 ssh_exec() 或 curl_get_info() 返回的信息填充它们。没有标准的方式,由你决定。
猜你喜欢
  • 2014-11-20
  • 2022-01-07
  • 1970-01-01
  • 2018-01-21
  • 2011-06-10
  • 1970-01-01
  • 2014-03-27
  • 2013-08-25
  • 1970-01-01
相关资源
最近更新 更多