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