【问题标题】:PHP CURL Background Process - REST API URLPHP CURL 后台进程 - REST API URL
【发布时间】:2016-03-03 07:25:56
【问题描述】:

我正在尝试使用 Curl 执行后台 REST API 调用 php 中的库。我猜它不工作。

你能推荐我吗?

$cum_url       = http://localhost/test/list;
$post = [ 'id' => $object->id ];
$ch = curl_init($cum_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);         
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt($ch, CURLOPT_TIMEOUT_MS, 1);
curl_exec($ch);
curl_close($ch);

更新:剔除错误提示“已超时”。

谢谢, 拉贾K

【问题讨论】:

  • 请在问题中包含您的错误或其他发现。你怎么知道它不起作用?我希望你没有真的猜到,但先测试一下;)
  • 嗨,谢谢。我在 REST URL 中添加了一个 db 插入行。它不是在ping。添加 curl_setopt($ch, CURLOPT_FRESH_CONNECT, true); 后它不起作用curl_setopt($ch, CURLOPT_TIMEOUT_MS, 1);用于后台进程

标签: php rest curl


【解决方案1】:

您需要将您的帖子数据从数组传输到 http 参数字符串,例如:

$cum_url = "http://localhost/test/list";
$post = [ 'id' => $object->id ];
$postdata = http_build_query($post);

$options = array (CURLOPT_RETURNTRANSFER => true, // return web page
    CURLOPT_HEADER => false, // don't return headers
    CURLOPT_FOLLOWLOCATION => true, // follow redirects
    CURLOPT_AUTOREFERER => true,
    CURLOPT_USERAGENT => "Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1",
    CURLOPT_SSL_VERIFYHOST => false,
    CURLOPT_SSL_VERIFYPEER => false);
$ch = curl_init($cum_url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt_array ( $ch, $options );
$res = null;
if(!curl_errno($ch)) {
    $res = curl_exec($ch);
}
curl_close($ch);

当然,某些选项是可选的,取决于您,例如 CURLOPT_USERAGENT。举个例子吧。

【讨论】:

  • 谢谢。正常 CURL 正在工作。我说的是后台进程。你是说你是sn-p支持后台进程?
  • 请参阅php.net/manual/en/function.curl-setopt.php 以确保您了解 curl 选项,并且只使用必要的选项,而不仅仅是从其他示例中复制选项......此外,当设置为 true 时,CURLOPT_RETURNTRANSFER 不会返回网页, 但将响应作为字符串返回而不是直接输出..
  • 对不起,我误解了你的问题。如果您正在寻找使用 curl 发送异步调用,也许您可​​以试试这个。 stackoverflow.com/questions/26039848/…
  • DTH,谢谢你的提醒。是的,你是对的,总是最好在使用之前检查文档中的使用选项。
猜你喜欢
  • 2014-07-21
  • 1970-01-01
  • 2011-03-31
  • 1970-01-01
  • 2015-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-27
相关资源
最近更新 更多