Ошибка 500 Установка заголовка для возврата 400 Ошибка PHP

Я разрабатываю веб-сервис RESTful и, честно говоря, это мой первый ws. Я решил использовать PHP, потому что я думаю, что знаю этот язык.

Это мое RestHandler объект, но когда я отлаживаю запрос, доступ к методу не реализован, с Charles, он возвращает правильный ответ, но ошибка 500 вместо 400. Почему?

class RestHandler {

    private $method;
    private $actionName;

    /**
     * @param $method
     * @param $action
     */
    public function __construct($method, $action)
    {
        $this->method = $method;
        $this->actionName = $action;

        if (isset($this->method) && isset($this->actionName))
        {
            if (! method_exists($this, $this->actionName))
            {
                // Action is not implemented in the object.
                $this->handleErrorReturning("Not implemented method.", 400);
                return;
            }
            // OK, proceed with actions
            $this->handleProceedRequest();
        }
        else
        {
            // Return error 406 Missing parameter
            $this->handleErrorReturning("Missing parameter", 406);
        }
    }

    private function handleProceedRequest()
    {
        if (strcasecmp($this->method, "get") == 0)
        {
            // No JSON to read
        }
    }

    /**
     * @param $errorDescription
     * @param $errorCode
     */
    private function handleErrorReturning($errorDescription, $errorCode)
    {
        header($_SERVER["SERVER_PROTOCOL"]." ".$errorDescription." ".$errorCode);
        header('Content-Type: application/json; charset=utf-8');
        $errorResponse = new ResponseError($errorCode, $errorDescription);
        echo $errorResponse;
    }
}

Это снимок ЧарльзаЧарльз снимок

РЕШЕНО Я инвертировал errorDescription с errorCode и теперь он работает. Это была глупая ошибка. Спасибо

1 ответ

Попробуйте установить свой заголовок так:

header($_SERVER['SERVER_PROTOCOL'] . ' Not implemented method', true, 400);

Другие вопросы по тегам