2015-01-24 1 views
0

나는 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; 
    } 
} 

이 찰스 스냅 샷 이 해결 Charles snapshot

내가 errorCode를 함께 ERRORDESCRIPTION를 반전하고 지금은 작동을합니다. 그것은 어리석은 실수였다. 감사합니다

+0

죄송합니다, 그것은 웹 서비스 –

답변

1

이 같은 헤더를 설정하십시오 :

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

+0

안녕, 난 헤더에 errorDescr와의 errorCode를 반전 해결했다. 그것은 어리석은 실수였다. 감사 –