xref: /openbmc/bmcweb/include/http_utility.hpp (revision 683f7276)
1 #pragma once
2 #include <boost/algorithm/string.hpp>
3 
4 namespace http_helpers
5 {
6 inline bool requestPrefersHtml(const crow::Request& req)
7 {
8     boost::string_view header = req.getHeaderValue("accept");
9     std::vector<std::string> encodings;
10     // chrome currently sends 6 accepts headers, firefox sends 4.
11     encodings.reserve(6);
12     boost::split(encodings, header, boost::is_any_of(", "),
13                  boost::token_compress_on);
14     for (const std::string& encoding : encodings)
15     {
16         if (encoding == "text/html")
17         {
18             return true;
19         }
20         else if (encoding == "application/json")
21         {
22             return false;
23         }
24     }
25     return false;
26 }
27 } // namespace http_helpers