我正在尝试使用和API,下面的curl请求在命令行上工作:
curl 'https://subdomain.test.domain.com/api/v1/users/4508184'
-X PUT
-F 'user[avatar][url]= http://domain.com/canvas/avatar.jpg'
-H "Authorization: Bearer tokenxxxxxxxxyyyyyyy"
在这里,我已经将上面的代码翻译成了PHP,但尽管正在发送请求,但它不起作用,因为它说"令牌无效"。我100%确信令牌正在工作并且是正确的,所以我认为我的代码中有一些东西
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "{$baseUrl}{$userId}",
CURLOPT_CUSTOMREQUEST => 'PUT', // -X
CURLOPT_POSTFIELDS => 'user[avatar][url]=http://domain/canvas/avatar.jpg', // -F
CURLOPT_HTTPHEADER => $header // -H
));
$result = curl_exec($curl);
curl_close($curl);
感谢
在$header中看到一些东西(单引号),这就起作用了:
$header = "Authorization: Bearer tokenxxxxxyyyyy";
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "{$baseUrl}{$userId}",
CURLOPT_CUSTOMREQUEST => 'PUT', // -X
CURLOPT_POSTFIELDS => 'user[avatar][url]=http://domain/canvas/avatar.jpg', // -F
CURLOPT_HTTPHEADER => $header // -H
));
$result = curl_exec($curl);
curl_close($curl);
我想明白了。更改此代码:
CURLOPT_HTTPHEADER => $header // -H
到此:
CURLOPT_HTTPHEADER => array($header) // -H
curlopt_httpheader应为和数组。