rest — ошибка 500 при установке заголовка для возврата 400 ошибка переполнения стека

Я разрабатываю веб-сервис 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 и теперь он работает. Это была глупая ошибка. Спасибо

0

Решение

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

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

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]