将curl请求转换为php

时间:2013-08-08 13:40:00

标签: php curl

我正在尝试使用和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);

谢谢

2 个答案:

答案 0 :(得分:0)

在你的$ 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);

答案 1 :(得分:0)

我明白了。更改此代码:

CURLOPT_HTTPHEADER => $header // -H 

到此:

CURLOPT_HTTPHEADER => array($header) // -H 

curlopt_httpheader expect和array。