2017-10-16 1 views
0

In PHP 5.6, Wenn ich versuche, Post-Daten mit curl_setopt_array zu senden, senden Daten nicht senden. Aber die Daten gesendet werden, wenn ich curl_setopt bin mitPHP curl_setopt_array nicht senden Post Kinderwagen Daten

1. POST-Daten und curl params:

$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 ist mein "curl_setopt_array" Code:

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

var_dump($json); 

3.hier ist mein 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); 

hinweis: ich bin nicht gut in Englisch, nach meinem Wissen geschrieben.

OUTPUT:

für "curl_setopt_array" Code:

string (95) "{" error ":" invalid_request " "ERROR_DESCRIPTION": "Ein erforderlicher Parameter \" client_id \" fehlt“ }“

für "curl_setopt" Code: nach json decode: Array (2) {[ "access_token"] => string (179) "AQWXnJKB5enEyPcqY68ldCUyWayz2LsNXhp-9E-RBaEwGX8EyB5rIDL6YcZh6k_kPT9vJbo_xAQUCeu4hJjeqJTFmTjuFhI3rReHCF4xYBeqGdA7L5_HXSqmdk6oZXtcRSqvCunp2HYsaoLpnCUeFFeYIF5MchaRXl8P_OjXERC3J7XHDU0"[ "expires_in"] => int (5183999)}

+0

Korrekt mit Großbuchstaben oder sogar Interpunktion in den meisten Fällen erfordert keine aufwändigen Englischkenntnisse ... –

+0

Was ist in Ihrem 'var_dump'. Zeigen Sie uns das auch –

+0

für "CURL_SETOPT_ARRAY" code: string (95) "{" error ":" invalid_request "," error_description ":" Ein erforderlicher Parameter \ "client_id \" fehlt "}" – Manoj

Antwort

0

Es ist möglich, dass die API, mit der Sie interagieren, JSON anstelle von URLENCODED-Daten erwartet, versuchen Sie, http_build_query durch json_encode zu ersetzen, und lassen Sie uns wissen, ob das geholfen hat! :)

+0

Nein, i Bruder war nicht arbeiten .. aber ich habe den Fehler gefunden. Es gibt ein Leerzeichen zwischen Schrägstrich und x-www-form-urlencoded. ** '(application/x-www-form-urlencoded)' **. Also entfernte ich das Leerzeichen. Dann muss es ** '(Anwendung/x-www-Form-urlencoded)' **. Es funktioniert jetzt gut. Wie auch immer, danke für Ihre Mühe und Antwort. – Manoj

+0

Froh, dass Sie es lösen könnten –