我正在创建自己的系统来管理所有来自 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;
输出为:
警告:curl_errno(): 2 不是第 28 行 C:''wamp''www''test.php 中的有效 cURL 句柄资源。
警告:curl_errno(): 2 不是第 29 行 C:''wamp''www''test.php 中的有效 cURL 句柄资源。
1//输出回显$ch结果
请帮助我找出代码的问题以及出现此警告的原因。
关闭$ch
后使用 curl_errno
和 curl_error
。这是不对的。
您需要在获取有关错误的信息后关闭$ch
。
echo curl_errno($ch);
echo curl_error($ch);
curl_close($ch);
此外,您没有设置任何要$ch_result
的内容。如果你期望它包含你的请求的结果,你就错了。要解决此问题,您需要添加选项CURLOPT_RETURNTRANSFER
并使用$ch_result = curl_exec($ch);
获取结果
echo curl_errno($ch);
echo curl_error($ch);
必须在curl_close($ch);
之前调用
关闭$ch
后使用 curl_errno
和 curl_error
。这是不对的。
您需要在获取有关错误的信息后关闭$ch
。
没错,我得到了答案.
$data = curl_exec($ch);
if (!curl_errno($ch)) {
....
}
curl_close($ch);