use*_*886 26 php curl ticket-system
我正在创建自己的系统来管理所有来自freshdesk.com通过其API的门票.我正在发送curl请求从freshdesk.com获取数据.获取与代码相关的数据它的工作正常,但当我通过curl请求请求所有用户时,它给我错误:
警告: curl_errno():2不是第28行C:\ wamp\www\test.php中的有效cURL句柄资源.
我的代码是这样的:
$ch = curl_init();
$cOption = array(
CURLOPT_URL => 'http://velocity.freshdesk.com/contacts.xml',
CURLOPT_HEADER => 0,
CURLOPT_USERPWD => "$email:$password",
CURLOPT_POST => false,
CURLOPT_HTTPHEADER => array('Content-Type: application/xml'),
CURLOPT_HTTPAUTH => CURLAUTH_BASIC,
CURLOPT_FAILONERROR => 1,
CURLOPT_SSL_VERIFYHOST => 2,
CURLOPT_SSLVERSION => 2
);
@curl_setopt_array( $ch, $cOption );
curl_close($ch);
echo curl_errno($ch); //line 28
echo curl_error($ch); //line 29
echo $ch_result;
Run Code Online (Sandbox Code Playgroud)
输出为:
警告: curl_errno():2不是第28行C:\ wamp\www\test.php中的有效cURL句柄资源.
警告: curl_errno():2不是C:\中的有效cURL句柄资源第29行的wamp\www\test.php.1
// echo $ ch_result的输出
请帮我弄清楚代码有什么问题,以及为什么会出现这种警告.
Mic*_*bov 77
您可以使用curl_errno
和curl_error
关闭后$ch
.这是不对的.
您需要关闭$ch
有关错误的以后获取信息.
echo curl_errno($ch);
echo curl_error($ch);
curl_close($ch);
Run Code Online (Sandbox Code Playgroud)
你也没有设置任何东西$ch_result
.如果您希望它包含您的请求结果,那么您错了.要解决此问题,您需要添加选项CURLOPT_RETURNTRANSFER
并获取结果$ch_result = curl_exec($ch);
Won*_*Bae 13
echo curl_errno($ch);
echo curl_error($ch);
Run Code Online (Sandbox Code Playgroud)
必须先叫 curl_close($ch);
小智 5
关闭$ ch后,您可以使用curl_errno和curl_error。这是不对的。
您需要在获取有关错误的信息后关闭$ ch。
没错,我可以回答这个问题。
$data = curl_exec($ch);
if (!curl_errno($ch)) {
....
}
curl_close($ch);
Run Code Online (Sandbox Code Playgroud)