2016-03-23 10 views
1

私はAPIを書いているので、スローして例外を返すヘッダーを作成するメソッドを呼び出します。コンテンツが存在しない場合、私は、カスタムメッセージおよびコード204コードが204の場合、PHPヘッダーにはカスタムメッセージが表示されません

throw new Exception("my message", 204); 

ヘッダ

if ($status_codes[$code] !== null) { 
    $status_string = $code . ' ' . $status_codes[$code]; 
    header($_SERVER['SERVER_PROTOCOL'] . ' ' . $status_string, true, $code); 

    if ($code != 200) die(json_encode(["code" => $code, "message" => $message])); 

} 
を構成する方法と例外をスロー

問題は、私は、コード204 Iを使用する場合回答のステータスは204 No contentですが、コードのメッセージは表示されません。私はコード400で試して、カスタムメッセージを表示します。

答えて

1

204応答はメッセージ本文を含んではいけません。したがって、ヘッダーフィールドの後の最初の空行で常に終了します。

RFC 2616

もう言葉が必要ですか? :)

+0

リンクをありがとう、今私はそれを理解しています。次に、DBからデータが見つからないときにメッセージを返すのに適した別のコードを使用できますか? – abaracedo

+1

これは間違いありません。あなたが204に固執すれば、準拠しているAPIクライアントはテキストメッセージを期待しないことを知っているので、それ自体も問題ありません。 –

+0

Okey、もう一度ありがとうございます。 – abaracedo

関連する問題