Stupeflix REST Api,php curl <url>格式错误</url>

时间:2014-05-31 11:23:51

标签: php ajax oop rest curl

我建立一个REST客户端php类来与Stupeflix REST Api进行通信以获取任务状态。我已经有了工作状态任务。 它(应该)的工作原理如下:

在font中,带有ajax调用的表单:

html部分:

<form action="stupeflix.php" method="POST">
    <h2>Formulaire</h2>
    <input type="submit">
</form>

JS部分:

var action = $('form').attr('action');
var method = $('form').attr('method');
var data;
var step;
var tasks;

function status() {
    step = 'status';
    tasks = 'theTaskId';
    data = {
        "step": step,
        "tasks": tasks
    };

    $.ajax({
        url: action,
        method: method,
        data: data,
        success: function(response){
            console.log(response);
        },
        error: function(error){
            console.log('erreur');
        }
    });
}

PHP部分:

一方面,根据步骤创建对象的文件:

require_once('StupeflixApi.php');    
/**
 * On récupère la variable $_POST et on vérifie le step
 */
if (isset($_POST['step']) || !empty($_POST['step'])) {
    /*print_r($_POST);*/

    switch ($_POST['step']) {
        case 'preview':
            try {                    
                $Stupeflix = new StupeflixApi('http://dragon.stupeflix.com/v2/create_file/preview/', 'secret', 'apikey');
                $json = json_encode($Stupeflix->generatePreview());
            } catch (Exception $e) {
                echo $e;
            }
            break;
        case 'generate':
            $Stupeflix = new StupeflixApi('http://dragon.stupeflix.com/v2/create_file/preview/', 'secret', 'apikey');
            $json = json_encode($Stupeflix->generateMovie());
            break;
        case 'status':
            try {
                $Stupeflix = new StupeflixApi('http://dragon.stupeflix.com/v2/status', '', '');
                $tasks = $_POST['tasks'];
                $json = $Stupeflix->getStatus($tasks);
                echo json_decode($json);
            } catch (Exception $e) {
                echo $e;
            }                
            break;

        default:
            echo '';
            break;
    }
}

另一方面,我的班级:

class StupeflixApi {

    private $host;
    private $secret;
    private $api_key;

    /**
     * Constructeur
     */
    public function __construc($host, $secret, $api_key) {

        $this->host = $host;
        $this->secret = $secret;
        $this->api_key = $api_key;
    }

    /**
     * Vérifie le status
     */
    public function getStatus($tasks) {

        if ( !isset($tasks) || empty($tasks) || $tasks == null ) {
            echo 'Tasks indéfinies';
        }
        else {
            /**
             * Définit le service status comme tache
             */
            /*$postData = array(
                'tasks' => $tasks
            );*/
            $postData = array(
                'tasks' => $tasks
            );

            /**
             * Initialise la connexion via cURL
             */
            $ch = curl_init($this->host);
            curl_setopt_array($ch, array(
                CURLOPT_POST            => TRUE,
                CURLOPT_HEADER          => true,
                CURLOPT_RETURNTRANSFER  => TRUE,
                CURLOPT_HTTPHEADER      => array(
                    'Content-Type: application/json'
                ),
                CURLOPT_POSTFIELDS      => json_encode($postData),
                CURLOPT_SSL_VERIFYPEER  => false,
            ));

            /**
             * Envoi de la requête via cURL
             */
            $response = curl_exec($ch);

            /**
             * Vérifie s'il y a des erreurs dans la requête
             */
            if($response === FALSE){
                die(curl_error($ch));
            }
            else {
                return json_encode($response);
            }
        }
    }
}

实际上,对于这项任务,状态,不需要apikey或密钥。

最终网址应如下所示:

https://dragon.stupeflix.com/v2/status?tasks=theTaskId

但它总是返回错误的错误。

任何一只手?

1 个答案:

答案 0 :(得分:0)

对我感到羞耻,这是一个错字:__construc而不是__construct与t。