diff --git a/include/google/google_service_root.hpp b/include/google/google_service_root.hpp
index fddd7b6..d802d00 100644
--- a/include/google/google_service_root.hpp
+++ b/include/google/google_service_root.hpp
@@ -38,7 +38,7 @@
     asyncResp->res.jsonValue["@odata.type"] =
         "#RootOfTrustCollection.RootOfTrustCollection";
     redfish::collection_util::getCollectionMembers(
-        asyncResp, "/google/v1/RootOfTrustCollection",
+        asyncResp, boost::urls::url("/google/v1/RootOfTrustCollection"),
         {"xyz.openbmc_project.Control.Hoth"}, "/xyz/openbmc_project");
 }
 
diff --git a/redfish-core/include/utils/collection.hpp b/redfish-core/include/utils/collection.hpp
index 7a845d1..97f622d 100644
--- a/redfish-core/include/utils/collection.hpp
+++ b/redfish-core/include/utils/collection.hpp
@@ -24,11 +24,12 @@
  */
 inline void
     getCollectionMembers(std::shared_ptr<bmcweb::AsyncResp> aResp,
-                         const std::string& collectionPath,
+                         const boost::urls::url& collectionPath,
                          const std::vector<const char*>& interfaces,
                          const char* subtree = "/xyz/openbmc_project/inventory")
 {
-    BMCWEB_LOG_DEBUG << "Get collection members for: " << collectionPath;
+    BMCWEB_LOG_DEBUG << "Get collection members for: "
+                     << collectionPath.string();
     crow::connections::systemBus->async_method_call(
         [collectionPath, aResp{std::move(aResp)}](
             const boost::system::error_code ec,
@@ -65,11 +66,10 @@
         members = nlohmann::json::array();
         for (const std::string& leaf : pathNames)
         {
-            std::string newPath = collectionPath;
-            newPath += '/';
-            newPath += leaf;
+            boost::urls::url url = collectionPath;
+            crow::utility::appendUrlPieces(url, leaf);
             nlohmann::json::object_t member;
-            member["@odata.id"] = std::move(newPath);
+            member["@odata.id"] = std::move(url);
             members.push_back(std::move(member));
         }
         aResp->res.jsonValue["Members@odata.count"] = members.size();
diff --git a/redfish-core/lib/cable.hpp b/redfish-core/lib/cable.hpp
index 0b8cd0f..89f41e2 100644
--- a/redfish-core/lib/cable.hpp
+++ b/redfish-core/lib/cable.hpp
@@ -179,7 +179,7 @@
         asyncResp->res.jsonValue["Description"] = "Collection of Cable Entries";
 
         collection_util::getCollectionMembers(
-            asyncResp, "/redfish/v1/Cables",
+            asyncResp, boost::urls::url("/redfish/v1/Cables"),
             {"xyz.openbmc_project.Inventory.Item.Cable"});
         });
 }
diff --git a/redfish-core/lib/chassis.hpp b/redfish-core/lib/chassis.hpp
index 2614115..4c4a9c4 100644
--- a/redfish-core/lib/chassis.hpp
+++ b/redfish-core/lib/chassis.hpp
@@ -148,7 +148,7 @@
     asyncResp->res.jsonValue["Name"] = "Chassis Collection";
 
     collection_util::getCollectionMembers(
-        asyncResp, "/redfish/v1/Chassis",
+        asyncResp, boost::urls::url("/redfish/v1/Chassis"),
         {"xyz.openbmc_project.Inventory.Item.Board",
          "xyz.openbmc_project.Inventory.Item.Chassis"});
 }
diff --git a/redfish-core/lib/memory.hpp b/redfish-core/lib/memory.hpp
index dd535f7..f8af707 100644
--- a/redfish-core/lib/memory.hpp
+++ b/redfish-core/lib/memory.hpp
@@ -793,7 +793,7 @@
             "/redfish/v1/Systems/system/Memory";
 
         collection_util::getCollectionMembers(
-            asyncResp, "/redfish/v1/Systems/system/Memory",
+            asyncResp, boost::urls::url("/redfish/v1/Systems/system/Memory"),
             {"xyz.openbmc_project.Inventory.Item.Dimm"});
         });
 }
diff --git a/redfish-core/lib/metric_report.hpp b/redfish-core/lib/metric_report.hpp
index 6b79c51..33c8c9c 100644
--- a/redfish-core/lib/metric_report.hpp
+++ b/redfish-core/lib/metric_report.hpp
@@ -16,9 +16,6 @@
 namespace telemetry
 {
 
-constexpr const char* metricReportUri =
-    "/redfish/v1/TelemetryService/MetricReports";
-
 using Readings =
     std::vector<std::tuple<std::string, std::string, double, uint64_t>>;
 using TimestampReadings = std::tuple<uint64_t, Readings>;
@@ -77,11 +74,14 @@
 
         asyncResp->res.jsonValue["@odata.type"] =
             "#MetricReportCollection.MetricReportCollection";
-        asyncResp->res.jsonValue["@odata.id"] = telemetry::metricReportUri;
+        asyncResp->res.jsonValue["@odata.id"] =
+            "/redfish/v1/TelemetryService/MetricReports";
         asyncResp->res.jsonValue["Name"] = "Metric Report Collection";
         const std::vector<const char*> interfaces{telemetry::reportInterface};
         collection_util::getCollectionMembers(
-            asyncResp, telemetry::metricReportUri, interfaces,
+            asyncResp,
+            boost::urls::url("/redfish/v1/TelemetryService/MetricReports"),
+            interfaces,
             "/xyz/openbmc_project/Telemetry/Reports/TelemetryService");
         });
 }
diff --git a/redfish-core/lib/metric_report_definition.hpp b/redfish-core/lib/metric_report_definition.hpp
index e15e920..bc1b894 100644
--- a/redfish-core/lib/metric_report_definition.hpp
+++ b/redfish-core/lib/metric_report_definition.hpp
@@ -23,9 +23,6 @@
 namespace telemetry
 {
 
-constexpr const char* metricReportDefinitionUri =
-    "/redfish/v1/TelemetryService/MetricReportDefinitions";
-
 using ReadingParameters =
     std::vector<std::tuple<sdbusplus::message::object_path, std::string,
                            std::string, std::string>>;
@@ -363,11 +360,14 @@
             "#MetricReportDefinitionCollection."
             "MetricReportDefinitionCollection";
         asyncResp->res.jsonValue["@odata.id"] =
-            telemetry::metricReportDefinitionUri;
+            "/redfish/v1/TelemetryService/MetricReportDefinitions";
         asyncResp->res.jsonValue["Name"] = "Metric Definition Collection";
         const std::vector<const char*> interfaces{telemetry::reportInterface};
         collection_util::getCollectionMembers(
-            asyncResp, telemetry::metricReportDefinitionUri, interfaces,
+            asyncResp,
+            boost::urls::url(
+                "/redfish/v1/TelemetryService/MetricReportDefinitions"),
+            interfaces,
             "/xyz/openbmc_project/Telemetry/Reports/TelemetryService");
         });
 
diff --git a/redfish-core/lib/processor.hpp b/redfish-core/lib/processor.hpp
index 8bc8cf0..ecf1c65 100644
--- a/redfish-core/lib/processor.hpp
+++ b/redfish-core/lib/processor.hpp
@@ -1074,8 +1074,9 @@
                 // Collection of all Config objects under this CPU.
                 collection_util::getCollectionMembers(
                     asyncResp,
-                    "/redfish/v1/Systems/system/Processors/" + cpuName +
-                        "/OperatingConfigs",
+                    crow::utility::urlFromPieces("redfish", "v1", "Systems",
+                                                 "system", "Processors",
+                                                 cpuName, "OperatingConfigs"),
                     {"xyz.openbmc_project.Inventory.Item.Cpu.OperatingConfig"},
                     object.c_str());
                 return;
@@ -1181,7 +1182,8 @@
             "/redfish/v1/Systems/system/Processors";
 
         collection_util::getCollectionMembers(
-            asyncResp, "/redfish/v1/Systems/system/Processors",
+            asyncResp,
+            boost::urls::url("/redfish/v1/Systems/system/Processors"),
             std::vector<const char*>(processorInterfaces.begin(),
                                      processorInterfaces.end()));
         });
diff --git a/redfish-core/lib/trigger.hpp b/redfish-core/lib/trigger.hpp
index 811d355..ad38556 100644
--- a/redfish-core/lib/trigger.hpp
+++ b/redfish-core/lib/trigger.hpp
@@ -20,7 +20,6 @@
 {
 constexpr const char* triggerInterface =
     "xyz.openbmc_project.Telemetry.Trigger";
-constexpr const char* triggerUri = "/redfish/v1/TelemetryService/Triggers";
 
 using NumericThresholdParams =
     std::tuple<std::string, uint64_t, std::string, double>;
@@ -302,11 +301,14 @@
         }
         asyncResp->res.jsonValue["@odata.type"] =
             "#TriggersCollection.TriggersCollection";
-        asyncResp->res.jsonValue["@odata.id"] = telemetry::triggerUri;
+        asyncResp->res.jsonValue["@odata.id"] =
+            "/redfish/v1/TelemetryService/Triggers";
         asyncResp->res.jsonValue["Name"] = "Triggers Collection";
         const std::vector<const char*> interfaces{telemetry::triggerInterface};
         collection_util::getCollectionMembers(
-            asyncResp, telemetry::triggerUri, interfaces,
+            asyncResp,
+            boost::urls::url("/redfish/v1/TelemetryService/Triggers"),
+            interfaces,
             "/xyz/openbmc_project/Telemetry/Triggers/TelemetryService");
         });
 }
