将curl请求转换为php

将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);