2017-10-16 8 views
0

PHP 5.6에서 curl_setopt_array를 사용하여 포스트 데이터를 보내려고하면 데이터가 전송되지 않습니다. 내가 curl_setopt을 사용하고 때 데이터가 전송됩니다PHP curl_setopt_array가 포스트 프램 데이터를 보내지 않습니다.

1. POST 데이터와 컬 PARAMS :

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

var_dump($json); 

:

$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 내 "curl_setopt_array"코드 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"코드

:

문자열 (95) "{"오류 ":"INVALID_REQUEST ","ERROR_DESCRIPTION ":"필수 매개 변수 \ "CLIENT_ID의 \"는 "없는 } CURL_SETOPT "에 대한

", "코드 : JSON 디코딩 후 : 어레이 (2) {["access_token은 "] => 스트링 (179)"AQWXnJKB5enEyPcqY68ldCUyWayz2LsNXhp-9E-RBaEwGX8EyB5rIDL6YcZh6k_kPT9vJbo_xAQUCeu4hJjeqJTFmTjuFhI3rReHCF4xYBeqGdA7L5_HXSqmdk6oZXtcRSqvCunp2HYsaoLpnCUeFFeYIF5MchaRXl8P_OjXERC3J7XHDU0 "["expires_in "] => INT (5183999)}

+0

대부분의 경우 대문자 나 구두법을 올바르게 사용하면 정교한 영어 지식이 필요하지 않습니다. –

+0

'var_dump'에 무엇이 있습니까? "CURL_SETOPT_ARRAY"코드의 경우 –

+0

표시 : 문자열 "("오류 ":"invalid_request ","error_description ":"필요한 매개 변수 \ "client_id \"가 없습니다. "}"CURL_SETOPT "코드의 경우 – Manoj

답변

0

상호 작용하는 API에서 URLENCODED 데이터 대신 JSON을 사용해야 할 수도 있습니다. http_build_queryjson_encode으로 바꾸고 도움이되는지 알려주세요! :)

+0

아니, 작동되지 않은 형 .. 하지만 그 실수를 발견했습니다. 슬래시와 x-www-form-urlencoded 사이에는 공백이 있습니다. **'(application/x-www-form-urlencoded)'**. 그래서 공간을 삭제했습니다. 그렇다면 **'(application/x-www-form-urlencoded) **입니다. 현재 잘 작동합니다. 어쨌든 당신의 노력과 대답에 감사드립니다. – Manoj

+0

다행이라면 해결할 수 있습니다. –