分析';s REST API和PHP Curl错误:{“代码”:201,“错误”:“丢失用户密码”}


Parse's REST API and PHP Curl error : {"code":201,"error":"missing user password"}

即使使用urlencode,我也会收到用户密码丢失错误。。我也读过很多解决方案,但都无法解决。我使用表单从用户那里获取数据,然后使用curl创建用户。plzz帮助

这是我的代码

$data=array();

    $data['username'] = $_POST['username'];
    $data['mobile'] = $_POST['mobile'];
    $data['password'] =  $_POST['password'];
    $data['email'] = $_POST['email']; 
    $post_str = '';
   foreach($data as $key=>$val) 
        {
            $post_str .= urlencode($key).'='.urlencode($val).'&';
        }
        echo $post_str = substr($post_str, 0, -1);

 $url = 'https://api.parse.com/1/users';  
 $appId = 'apikey';  
 $restKey = 'rest key';  
 $headers = array(  
   "Content-Type: application/json",  
   "X-Parse-Application-Id: " . $appId,  
   "X-Parse-REST-API-Key: " . $restKey  
 );  

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url );
curl_setopt($ch, CURLOPT_POST, TRUE);
 curl_setopt($ch, CURLOPT_FRESH_CONNECT, FALSE);
curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post_str) );
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

$result = curl_exec($ch);
curl_close($ch);
echo $result;

为什么不直接使用提供的Parse PHP SDKhttps://github.com/parseplatform/parse-php-sdk?

在您的代码中,您不应该尝试urlencode()数据,只需将其作为数组传递给json_encode():

<?php
// ...
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url );
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result = curl_exec($ch);
curl_close($ch);
echo $result;