xref: /aosp_15_r20/external/cronet/net/http/http_status_code.h (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1 // Copyright 2012 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef NET_HTTP_HTTP_STATUS_CODE_H_
6 #define NET_HTTP_HTTP_STATUS_CODE_H_
7 
8 #include "net/base/net_export.h"
9 
10 namespace net {
11 
12 // HTTP status codes.
13 enum HttpStatusCode {
14 
15 #define HTTP_STATUS_ENUM_VALUE(label, code, reason) HTTP_##label = code,
16 #include "net/http/http_status_code_list.h"
17 #undef HTTP_STATUS_ENUM_VALUE
18 
19 };
20 
21 // Returns the corresponding HTTP status description to use in the Reason-Phrase
22 // field in an HTTP response for given |code|. It's based on the IANA HTTP
23 // Status Code Registry.
24 // http://www.iana.org/assignments/http-status-codes/http-status-codes.xml
25 //
26 // This function may not cover all codes defined in the IANA registry. It
27 // returns an empty string (or crash in debug build) for status codes which are
28 // not yet covered or just invalid. Please extend it when needed.
29 NET_EXPORT const char* GetHttpReasonPhrase(HttpStatusCode code);
30 
31 // Similar to the one above, but returns a nullptr in case code does not map
32 // to a known reasone phrase, which allows a gentle recovery in case the code
33 // was obtained from a non-trusted party.
34 NET_EXPORT const char* TryToGetHttpReasonPhrase(HttpStatusCode code);
35 
36 }  // namespace net
37 
38 #endif  // NET_HTTP_HTTP_STATUS_CODE_H_
39