簡體   English   中英

PHP-REST API-HTTP標頭-錯誤處理

[英]PHP - REST API - http headers - error handling

我正在嘗試返回HTTP標頭和XML,以說明過程是否成功。

在開發我的API時,這一切似乎都工作正常,我正在從同一台服務器對該API進行測試調用,並獲得了相關的標頭狀態代碼和XML。 但是,當我再次測試時卻從其他服務器調用API時遇到問題。

如果響應為200,則得到響應XML。 如果有錯誤,我會收到標頭狀態代碼OK,但沒有收到錯誤XML。 我玩弄了錯誤消息傳遞功能,並注意到如果我注釋掉header($status_header); 錯誤XML已發送。 誰能闡明為什么會這樣?

    static function errorResponse($status = 400, $body = '')  {  

    $status_message = APIResponse::getStatusCodeMessage($status);
            $status_header = 'HTTP/1.1 ' . $status . ' ' . $status_message;  

    // set the HTTP status  
    header($status_header);   

    if($body == '')  {  
       // create the message if none is passed  
      $body = '';  

      switch($status)  
      {  
          case 401:  
              $body = 'You must be authorized to view this page.';  
              break;  
          case 404:  
              $body = 'The requested URL ' . $_SERVER['REQUEST_URI'] . ' was not found.';  
              break;  
          case 500:  
              $body = 'The server encountered an error processing your request.';  
              break;  
          case 501:  
              $body = 'The requested method is not implemented.';  
              break;  
      }  

    } 

      $response_xml = '<?xml version="1.0" encoding="utf-8"?> 
          <error>  
              <date>' . date("D, d M Y H:i:s", time()) . '</date>
              <status>' . $status . ' - ' . $status_message . '</status> 
              <message><![CDATA[' . $body . ']]></message> 
          </error>';  

      return $response_xml;  
      exit;  

}  

現在,我對此進行了排序,這是我的包含CURL函數的類出現的錯誤,與此類無關。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM