Php 当我发送超过1个标题时,它返回400个错误

Php 当我发送超过1个标题时,它返回400个错误,php,oauth-2.0,discord,Php,Oauth 2.0,Discord,400错误 头中的bot令牌 bot已在服务器上问题不在于头本身。发送的内容类型是application/json,但通过cURL传输的数据不是json,而是URL编码的键/值对 $data是一个类似于此处设置的数组 $url = 'https://discord.com/api/guilds/******323098841117/members/'.$_SESSION['cid']; $data = array("access_token" => 'Bearer '.

400错误

头中的bot令牌


bot已在服务器上

问题不在于头本身。发送的内容类型是
application/json
,但通过cURL传输的数据不是json,而是URL编码的键/值对

$data
是一个类似于此处设置的数组

$url = 'https://discord.com/api/guilds/******323098841117/members/'.$_SESSION['cid'];
$data = array("access_token" => 'Bearer '.$_SESSION['token']);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query($data));
$arr = ['Content-Type: application/json','Authorization: Bot NzI2NTQ5NjI1MDYx**********xBakg.ZfpEdgqsW3rZuPLTXSm5Q5p20bU'];
curl_setopt($ch, CURLOPT_HTTPHEADER, $arr);
$response = curl_exec($ch);
echo($response);
echo("Bearer ".$_SESSION['token']);
echo("Welcome back, ".$_SESSION['name']);
正确地将其转换为文本

$data = array("access_token" => 'Bearer '.$_SESSION['token']);
但它必须转换为JSON,所以只需将
http\u build\u query
替换为
JSON\u encode
,如下所示

curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));

你告诉我发送JSON,但你没有。非常感谢!现在开始工作!我已经发布了一个详细的答案,因为其他人可能也有同样的问题。
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));