Reduce multi-level calls of req.req members

Several places access the members of `req` indirectly like
`req.req.method()`.  This can be simplified as `req.method()` .

This would also make the code clearer.

Tested:
- Compiles
- Redfish service validator passes

Change-Id: Ie129564ff907cdea7ac224b1e3d80cc0dedfbd7b
Signed-off-by: Myung Bae <myungbae@us.ibm.com>
diff --git a/http/http2_connection.hpp b/http/http2_connection.hpp
index 4b1b2dc..8416ff7 100644
--- a/http/http2_connection.hpp
+++ b/http/http2_connection.hpp
@@ -434,7 +434,7 @@
                 close();
                 return -1;
             }
-            thisReq.req.method(verb);
+            thisReq.method(verb);
         }
         else if (nameSv == ":scheme")
         {
@@ -442,7 +442,7 @@
         }
         else
         {
-            thisReq.req.set(nameSv, valueSv);
+            thisReq.addHeader(nameSv, valueSv);
         }
         return 0;
     }
diff --git a/http/http_request.hpp b/http/http_request.hpp
index a3c8fd8..53f51e6 100644
--- a/http/http_request.hpp
+++ b/http/http_request.hpp
@@ -80,6 +80,10 @@
     {
         return req.method();
     }
+    void method(boost::beast::http::verb verb)
+    {
+        return req.method(verb);
+    }
 
     std::string_view getHeaderValue(std::string_view key) const
     {
@@ -91,6 +95,11 @@
         return req[key];
     }
 
+    void clearHeader(boost::beast::http::field key)
+    {
+        req.erase(key);
+    }
+
     std::string_view methodString() const
     {
         return req.method_string();
diff --git a/http/websocket.hpp b/http/websocket.hpp
index d232c02..2ef8412 100644
--- a/http/websocket.hpp
+++ b/http/websocket.hpp
@@ -92,7 +92,8 @@
         BMCWEB_LOG_DEBUG("starting connection {}", logPtr(this));
 
         using bf = boost::beast::http::field;
-        std::string protocolHeader = req.req[bf::sec_websocket_protocol];
+        std::string protocolHeader{
+            req.getHeaderValue(bf::sec_websocket_protocol)};
 
         ws.set_option(boost::beast::websocket::stream_base::decorator(
             [session{session},
diff --git a/redfish-core/include/query.hpp b/redfish-core/include/query.hpp
index 5962093..e68b89a 100644
--- a/redfish-core/include/query.hpp
+++ b/redfish-core/include/query.hpp
@@ -46,7 +46,7 @@
         return;
     }
     // Restart the request without if-match
-    req.req.erase(boost::beast::http::field::if_match);
+    req.clearHeader(boost::beast::http::field::if_match);
     BMCWEB_LOG_DEBUG("Restarting request");
     app.handle(req, asyncResp);
 }
@@ -74,9 +74,9 @@
         // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-Match
         return true;
     }
-    if (req.req.method() != boost::beast::http::verb::patch &&
-        req.req.method() != boost::beast::http::verb::post &&
-        req.req.method() != boost::beast::http::verb::delete_)
+    if (req.method() != boost::beast::http::verb::patch &&
+        req.method() != boost::beast::http::verb::post &&
+        req.method() != boost::beast::http::verb::delete_)
     {
         messages::preconditionFailed(asyncResp->res);
         return false;
diff --git a/test/redfish-core/include/utils/json_utils_test.cpp b/test/redfish-core/include/utils/json_utils_test.cpp
index 9245f25..5ef80ee 100644
--- a/test/redfish-core/include/utils/json_utils_test.cpp
+++ b/test/redfish-core/include/utils/json_utils_test.cpp
@@ -297,7 +297,7 @@
     crow::Request req("{\"integer\": 1}", ec);
 
     // Ignore errors intentionally
-    req.req.set(boost::beast::http::field::content_type, "application/json");
+    req.addHeader(boost::beast::http::field::content_type, "application/json");
 
     int64_t integer = 0;
     ASSERT_TRUE(readJsonPatch(req, res, "integer", integer));
@@ -324,7 +324,7 @@
     crow::Response res;
     std::error_code ec;
     crow::Request req(R"({"@odata.etag": "etag", "integer": 1})", ec);
-    req.req.set(boost::beast::http::field::content_type, "application/json");
+    req.addHeader(boost::beast::http::field::content_type, "application/json");
     // Ignore errors intentionally
 
     std::optional<int64_t> integer = 0;
@@ -352,7 +352,7 @@
     crow::Response res;
     std::error_code ec;
     crow::Request req("{\"integer\": 1}", ec);
-    req.req.set(boost::beast::http::field::content_type, "application/json");
+    req.addHeader(boost::beast::http::field::content_type, "application/json");
     // Ignore errors intentionally
 
     int64_t integer = 0;
@@ -367,7 +367,7 @@
     crow::Response res;
     std::error_code ec;
     crow::Request req({"{}"}, ec);
-    req.req.set(boost::beast::http::field::content_type, "application/json");
+    req.addHeader(boost::beast::http::field::content_type, "application/json");
     // Ignore errors intentionally
 
     std::optional<int64_t> integer = 0;