在同一个函数中运行两个cURL脚本似乎会阻塞第二个动作


Running two cURL scripts in same function seems to be blocking second action

我有一个脚本,其中我想通过cURL发送两个HTTPS调用到具有类似变量的主数据库。我已经测试了每个脚本单独工作良好,但当我结合两个第二个被阻止。下面是它们组合在一起的样子:

$idno=’123’;

$curl = curl_init();
curl_setopt($curl, CURLOPT_VERBOSE, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_URL, 'https://mysite.com/integration.php?type=CANCEL&idnumber='.$idno.'');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$Response = curl_exec($curl);  
return $Response;
curl_close($curl);

$curl2 = curl_init();
curl_setopt($curl2, CURLOPT_VERBOSE, 1);
curl_setopt($curl2, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl2, CURLOPT_TIMEOUT, 30);
curl_setopt($curl2, CURLOPT_URL, 'https://mysite.com/integration2.php?customer_id=CUSOTMER&idnumber='.$idno.’&type=CANCEL');
curl_setopt($curl2, CURLOPT_RETURNTRANSFER, 1);
$Response2 = curl_exec($curl2);  
return $Response2;
curl_close($curl2);

我尝试了一些变化来打开和关闭cURL调用,但没有运气。外面有什么东西是关闭的吗?

首先,你的代码有语法错误。请把它们修好。例如,$idno=’123’;应该是$idno='123';

现在,来看看为什么第二个旋度不起作用!!return在你的第一个卷曲请求后做什么??

$Response = curl_exec($curl);  
return $Response; <--- its returning you back from here

这就是为什么第二个旋度总是不可达的原因!!删除不需要的return block

我找到了一种新的方法来为多curl请求重写代码。这在cURL文档中有很好的定义:

http://us2.php.net/manual/en/function.curl-multi-exec.php