将curl请求转换为php
问题描述:
I am trying to use and API, an the curl request below works on the command line:
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"
Here I have translated the code above to PHP, but although the request is being sent it is not working because it says the "token is invalid". I am 100% sure the token is working and is correct so I presume that there is something in my code
$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);
Thank you
我正在尝试使用和API,下面的curl请求适用于命令行: p> \ n
curl'https://subdomain.test.domain.com/api/v1/users/4508184'
X PUT
F'user [avatar] [url] = http:// domain .com / canvas / avatar.jpg'
H“授权:Bearer tokenxxxxxxxxyyyyyyy”
code> pre>
这里我已将上面的代码翻译成PHP,但是请求正在 发送它不起作用,因为它说“令牌无效”。
我100%确定令牌工作正常所以我认为我的代码中有一些东西 p>
$ curl = curl_init();
curl_setopt_array($ curl,array(
&nCURLOPT_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);
code> pre>
谢谢 p>
div>
答
I figure it out. Change this code:
CURLOPT_HTTPHEADER => $header // -H
to this:
CURLOPT_HTTPHEADER => array($header) // -H
curlopt_httpheader expect and array.
答
Saw something in your $header (single quotes) does this work:
$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);