【问题标题】:PHP curl_setopt_array not sending post prams dataPHP curl_setopt_array 不发送后婴儿车数据
【发布时间】: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)}

标签: php curl php-5.6 php-curl


【解决方案1】:

您正在与之交互的 API 可能需要 JSON 而不是 URLENCODED 数据,请尝试将 http_build_query 替换为 json_encode 并告诉我们是否有帮助! :)

【讨论】:

  • 不,兄弟,我没上班……但我发现了错误。斜杠和 x-www-form-urlencoded 之间有一个空格。 (application/ x-www-form-urlencoded) 。所以,我删除了空格。那么它必须是 (application/x-www-form-urlencoded)。现在工作正常。无论如何感谢您的努力和回复。
猜你喜欢
  • 1970-01-01
  • 2019-11-02
  • 2022-01-11
  • 2021-10-29
  • 2010-12-16
  • 2016-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多