2017-10-16 5 views
0

En PHP 5.6, Lorsque j'essaie d'envoyer des données de message à l'aide de curl_setopt_array, ne publiez pas de données. Mais les données sont envoyées lorsque j'utilise curl_setoptPHP curl_setopt_array ne pas envoyer de données de prams post

1. données POST et params papillotes:

$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.here est mon code "curl_setopt_array":

$feed = curl_init(); 
curl_setopt_array($feed, $options); 
$json = curl_exec($feed); 
curl_close($feed); 

var_dump($json); 

3.Il y a mon code "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); 

note: je ne suis pas bon en anglais, écrit à ma connaissance.

SORTIE:

pour code "curl_setopt_array":

chaîne

(95) "{" erreur ":" invalid_request " "ERROR_DESCRIPTION": "Un paramètre requis \" client_id \" manque » } »

pour "curl_setopt" Code: Après JSON décodage: tableau (2) {[ "access_token"] => string (179) "AQWXnJKB5enEyPcqY68ldCUyWayz2LsNXhp-9E-RBaEwGX8EyB5rIDL6YcZh6k_kPT9vJbo_xAQUCeu4hJjeqJTFmTjuFhI3rReHCF4xYBeqGdA7L5_HXSqmdk6oZXtcRSqvCunp2HYsaoLpnCUeFFeYIF5MchaRXl8P_OjXERC3J7XHDU0"[ "expires_in"] => int (5183999)}

+0

Correctement en utilisant des lettres majuscules ou même la ponctuation dans la plupart des cas ne nécessite pas une connaissance approfondie de la langue anglaise ... –

+0

Qu'est-ce que dans votre 'var_dump'. montrez-le aussi –

+0

pour "CURL_SETOPT_ARRAY" code: string (95) "{" error ":" invalid_request "," error_description ":" Un paramètre obligatoire \ "client_id \" est manquant "}" – Manoj

Répondre

0

il est possible que l'API avec laquelle vous interagissez attende JSON au lieu de données URLENCODED, essayez de remplacer http_build_query par json_encode et dites-nous si cela a aidé! :)

+0

non, mon frère je me travaille pas .. mais j'ai trouvé l'erreur. il y a un espace entre slash et x-www-form-urlencoded. ** '(application/x-www-form-urlencoded) **. Donc, j'ai supprimé l'espace. Puis il doit être ** '(application/x-www-form-urlencoded)' **. Cela fonctionne bien maintenant. En tout cas merci pour vos efforts et répondre. – Manoj

+0

Content de pouvoir le résoudre –