简体   繁体   中英

Error in Autodesk API call through PHP with CURL

I am trying to make call to Autodesk Authentication API through PHP with the help of CURL but I am continously getting false response. Not sure what is wrong, can anyone please suggest how to call REST services with the help of CURL in PHP?

My code is like this -

$url = 'https://developer.api.autodesk.com/authentication/v1/authenticate';
    $data = array("client_id" => $consumer_key,"client_secret" => $secret_key,"grant_type"=>$grant_type);

    $ch=curl_init($url);
    echo $ch;
    $data_string = json_encode($data);
    echo $data_string;
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch,CURLOPT_HTTPHEADER,array('Content-Type'=>'application/x-www-  form-urlencoded'));
    curl_setopt($ch, CURLOPT_POSTFIELDS, array("customer"=>$data_string));
    $result = curl_exec($ch);
    curl_close($ch);
    $data_return=array("result"=> $result);
    echo json_encode($data_return);

Output is -

{"result":false}

I checked the information with curl_getinfo and it is like- array ( 'url' => 'https://developer.api.autodesk.com/authentication/v1/authenticate', 'content_type' => NULL, 'http_code' => 0, 'header_size' => 0, 'request_size' => 0, 'filetime' => -1, 'ssl_verify_result' => 0, 'redirect_count' => 0, 'total_time' => 0.34300000000000003, 'namelookup_time' => 0, 'connect_time' => 0.23400000000000001, 'pretransfer_time' => 0, 'size_upload' => 0, 'size_download' => 0, 'speed_download' => 0, 'speed_upload' => 0, 'download_content_length' => -1, 'upload_content_length' => -1, 'starttransfer_time' => 0, 'redirect_time' => 0, 'redirect_url' => '', 'primary_ip' => '52.26.41.203', 'certinfo' => array ( ), 'primary_port' => 443, 'local_ip' => '192.168.1.106', 'local_port' => 62792, )

In reponse its showing "protocol.http.BadFormData" error.

Try adding:

curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

This tells curl to return the transfer as a string of the return value of curl_exec() instead of outputting it out directly. You can read more about curl options here .

我不认为您需要对数据进行JSON编码...请尝试删除以下行:

$data_string = json_encode($data);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM