在curl中发布标题为的数据在php中不起作用?
我正在尝试使用PHP创建box应用程序用户。createuser的curl如下所示,它正在终端上工作在curl中发布标题为的数据在php中不起作用?,php,post,box-api,Php,Post,Box Api,我正在尝试使用PHP创建box应用程序用户。createuser的curl如下所示,它正在终端上工作 curl https://api.box.com/2.0/users \ -H "Authorization: Bearer <Access token>" \ -d '{"name": "New User", "is_platform_access_only": true}' \ -X POST 下面一个我已经试过了 $developer_token = "TOKEN" ; $a
curl https://api.box.com/2.0/users \
-H "Authorization: Bearer <Access token>" \
-d '{"name": "New User", "is_platform_access_only": true}' \
-X POST
下面一个我已经试过了
$developer_token = "TOKEN" ;
$access_token_url = "https://api.box.com/2.0/users";
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $access_token_url);
//Adding Parameters
curl_setopt($ch, CURLOPT_POSTFIELDS, array(
'name'=>'NEW USER',
'is_platform_access_only'=>'true',
));
//Adding Header
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Authorization: Bearer '.$developer_token
));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response1 = curl_exec($ch);
如果删除Post参数,并仅使用标题运行,则会给出用户的结果。但是post会抛出错误。我在Perl代码中也提出了同样的问题。在这里,我得到了用户
@melpomene
的答案
我们应该将数据编码为JSON。它正在工作,
那么最后的代码是
$data = array(name=>SOMENAME,is_platform_access_only=>true);
$data = json_encode($data);
$header = array("Authorization: Bearer <TOKEN>");
$ch = curl_init("https://api.box.com/2.0/users/");
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response1 = curl_exec($ch);
curl_close($ch);
$data=array(name=>SOMENAME,is\u platform\u access\u only=>true);
$data=json_encode($data);
$header=数组(“授权:承载”);
$ch=curl_init(“https://api.box.com/2.0/users/");
curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
curl_setopt($ch,CURLOPT_CUSTOMREQUEST,“POST”);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$response1=curl\u exec($ch);
卷曲关闭($ch);
$data = array(name=>SOMENAME,is_platform_access_only=>true);
$data = json_encode($data);
$header = array("Authorization: Bearer <TOKEN>");
$ch = curl_init("https://api.box.com/2.0/users/");
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response1 = curl_exec($ch);
curl_close($ch);