나는 RESTful 웹 서비스를 개발하고 있으며 솔직히 내 첫 번째 ws입니다. 나는 내가 그 언어를 안다고 생각하기 때문에 PHP를 사용하기로 결정했다.오류 500 반환 헤더 400 오류를 반환 PHP
이것은 내 RestHandler
개체이지만 요청을 디버그 할 때 구현되지 않은 메서드 인 Charles
에 액세스하면 올바른 응답을 반환하지만 400 대신 500 오류가 반환됩니다. 이유가 무엇입니까?
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;
}
}
이 찰스 스냅 샷 이 해결
내가 errorCode를 함께 ERRORDESCRIPTION를 반전하고 지금은 작동을합니다. 그것은 어리석은 실수였다. 감사합니다
죄송합니다, 그것은 웹 서비스 –