带有用户名/密码标志的PHP Curl


PHP Curl with flag for username/password

我试图使用PHP向desk.comapi发出一个简单的curl请求,但很难得到响应。以下是他们的文档。

$ curl https://yoursite.desk.com/api/v2/cases/:id '
-u email:password '
-H 'Accept: application/json'

下面是我的PHP来尝试并完成上面的

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://url.desk.com/api/v2/cases -u email:password");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 'Accept: application/json');
$output = curl_exec($ch);
var_dump($output);
curl_close($ch);

我以前几乎没有用过卷发,所以如果能帮我解释为什么没有得到回应,我将不胜感激。

您是否尝试发送基本授权?

curl_setopt($ch, CURLOPT_URL, "https://url.desk.com/api/v2/cases");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
curl_setopt($ch, CURLOPT_HEADER, 'Accept: application/json');

您也不需要url中的"-u",这是用于命令行curl的。

此外,您需要将":id"替换为以上案例的id,以返回特定案例。例如:

curl_setopt($ch, CURLOPT_URL, "https://url.desk.com/api/v2/cases/1");

请尝试此操作,确保定义/替换$email和$password

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://url.desk.com/api/v2/cases");
curl_setopt($ch, CURLOPT_USERPWD, "{$email}:{$password}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 'Accept: application/json');
$output = curl_exec($ch);
var_dump($output);
curl_close($ch);