From 8d6f3f68f1309d4cf4b3a941722314a4994a3b67 Mon Sep 17 00:00:00 2001 From: Norman Lansing Date: Sun, 15 Mar 2026 22:09:50 -0400 Subject: [PATCH] Lesson 61 - Parsing an HTTP Response --- Source/DedicatedServers/DedicatedServers.Build.cs | 4 +++- .../Private/UI/API_Test/APITestManager.cpp | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/Source/DedicatedServers/DedicatedServers.Build.cs b/Source/DedicatedServers/DedicatedServers.Build.cs index fbec5779..7b318f21 100644 --- a/Source/DedicatedServers/DedicatedServers.Build.cs +++ b/Source/DedicatedServers/DedicatedServers.Build.cs @@ -24,7 +24,9 @@ public class DedicatedServers : ModuleRules "Slate", "SlateCore", "OpenSSL", - "UMG" + "UMG", + "Json", + "JsonUtilities" }); // Adds in the plugin for GameLiftServerSDK if it is the server build. diff --git a/Source/DedicatedServers/Private/UI/API_Test/APITestManager.cpp b/Source/DedicatedServers/Private/UI/API_Test/APITestManager.cpp index 56a81cd8..758029c0 100644 --- a/Source/DedicatedServers/Private/UI/API_Test/APITestManager.cpp +++ b/Source/DedicatedServers/Private/UI/API_Test/APITestManager.cpp @@ -5,6 +5,7 @@ #include "HttpModule.h" #include "Data/API/APIData.h" #include "GameplayTags/DedicatedServersTags.h" +#include "Interfaces/IHttpResponse.h" void UAPITestManager::ListFleetsButtonClicked() { @@ -27,4 +28,18 @@ void UAPITestManager::ListFleetsButtonClicked() void UAPITestManager::ListFleets_Response(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful) { GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Blue, "List Fleets Response Received"); + + TSharedPtr JsonObject; + TSharedRef> JsonReader = TJsonReaderFactory<>::Create(Response->GetContentAsString()); + if (FJsonSerializer::Deserialize(JsonReader, JsonObject)) + { + if (JsonObject->HasField(TEXT("FleetIds"))) + { + for (TSharedPtr Fleet :JsonObject->GetArrayField(TEXT("FleetIds"))) + { + FString FleetString = Fleet->AsString(); + GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Blue, FleetString); + } + } + } }