[英]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.