【发布时间】:2018-03-27 20:54:14
【问题描述】:
在 PHP 5.6 中, 当我尝试使用 curl_setopt_array 发送发布数据时,发布数据不发送。但是当我使用 curl_setopt 时发送数据
1. POST 数据和 curl 参数:
$url = "https://XXXXXXXXXXX/oauth/v2/accessToken";
$data = array(
'grant_type' => 'authorization_code',
'code'=>$_REQUEST['code'],
'redirect_uri'=>$redirect_uri,
'client_id'=>$client_id,
'client_secret'=>$client_secret
);
$header = array('Content-Type: application/ x-www-form-urlencoded');
$options = array(
CURLOPT_HTTPHEADER => $header,
CURLOPT_POSTFIELDS => http_build_query($data),
CURLOPT_URL => $url,
CURLOPT_POST=>true,
CURLOPT_RETURNTRANSFER => true,
// CURLOPT_SSL_VERIFYPEER => false
);
2.这是我的“curl_setopt_array”代码:
$feed = curl_init();
curl_setopt_array($feed, $options);
$json = curl_exec($feed);
curl_close($feed);
var_dump( $json);
3.这是我的“curl_setopt”代码
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
$response = curl_exec($curl);
curl_close($curl);
$response = json_decode( $response,true);
var_dump($response);
注意: 我英语不好,据我所知写的。
输出:
对于“CURL_SETOPT_ARRAY”代码:
string(95) "{"error":"invalid_request","error_description":"缺少必需的参数\"client_id\""}"
对于“CURL_SETOPT”代码: json解码后: 阵列(2){[ “ACCESS_TOKEN”] =>的字符串(179) “AQWXnJKB5enEyPcqY68ldCUyWayz2LsNXhp-9E-RBaEwGX8EyB5rIDL6YcZh6k_kPT9vJbo_xAQUCeu4hJjeqJTFmTjuFhI3rReHCF4xYBeqGdA7L5_HXSqmdk6oZXtcRSqvCunp2HYsaoLpnCUeFFeYIF5MchaRXl8P_OjXERC3J7XHDU0”[ “expires_in”] => INT(5183999)} P>
【问题讨论】:
-
在大多数情况下正确使用大写字母甚至标点符号不需要任何复杂的英语语言知识...
-
您的
var_dump中有什么内容。也向我们展示这一点 -
for "CURL_SETOPT_ARRAY" 代码:string(95) "{"error":"invalid_request","error_description":"缺少必需的参数 \"client_id\""}"
-
为 “CURL_SETOPT” 代码:阵列(2){[ “ACCESS_TOKEN”] =>的字符串(179) “AQWXnJKB5enEyPcqY68ldCUyWayz2LsNXhp-9E-RBaEwGX8EyB5rIDL6YcZh6k_kPT9vJbo_xAQUCeu4hJjeqJTFmTjuFhI3rReHCF4xYBeqGdA7L5_HXSqmdk6oZXtcRSqvCunp2HYsaoLpnCUeFFeYIF5MchaRXl8P_OjXERC3J7XHDU0”[ “expires_in”] => INT(5183999)}