Space Plunder
Loading...
Searching...
No Matches
UHTTPFetchRequest Class Reference

#include <HTTPFetchRequest.h>

Inheritance diagram for UHTTPFetchRequest:

Public Member Functions

virtual void Activate () override
 

Static Public Member Functions

static UHTTPFetchRequestAsyncRequestHTTP (UObject *WorldContextObject, FString URL, FString Field)
 

Public Attributes

FOnHttpRequestCompleted OnHttpRequestCompleted
 
FString TextField
 
FString URL
 

Protected Member Functions

void HandleRequestCompleted (FString ResponseString, bool bSuccess)
 

Member Function Documentation

◆ Activate()

void UHTTPFetchRequest::Activate ( )
overridevirtual

Execute the actual load

10{
11 //- Create HTTP Request //
12 TSharedRef<IHttpRequest, ESPMode::ThreadSafe> HttpRequest = FHttpModule::Get().CreateRequest();
13 HttpRequest->SetVerb("GET");
14 HttpRequest->SetHeader("Content-Type", "application/json");
15 HttpRequest->SetURL(URL);
16
17 //- Setup Async response //
18 HttpRequest->OnProcessRequestComplete().BindLambda([this](FHttpRequestPtr Request, FHttpResponsePtr Response, bool bSuccess)
19 {
20 FString ResponseString = "";
21 if (bSuccess && Response.IsValid())
22 {
23 ResponseString = Response->GetContentAsString();
24 }
25
26 this->HandleRequestCompleted(ResponseString, bSuccess);
27 });
28
29 //- Handle actual request //
30 HttpRequest->ProcessRequest();
31}
FString URL
Definition HTTPFetchRequest.h:30

◆ AsyncRequestHTTP()

UHTTPFetchRequest * UHTTPFetchRequest::AsyncRequestHTTP ( UObject * WorldContextObject,
FString URL,
FString Field )
static
34{
35 //- Create Action Instance for Blueprint System //
36 UHTTPFetchRequest* Action = NewObject<UHTTPFetchRequest>();
37 Action->URL = URL;
38 Action->RegisterWithGameInstance(WorldContextObject);
39 Action->TextField = Field;
40
41 return Action;
42}
Definition HTTPFetchRequest.h:14

◆ HandleRequestCompleted()

void UHTTPFetchRequest::HandleRequestCompleted ( FString ResponseString,
bool bSuccess )
protected
45{
46 FString OutString;
47 if (bSuccess)
48 {
49 //- Deserialize object //
50 TSharedPtr<FJsonObject> JsonObject = MakeShareable(new FJsonObject());
51 TSharedRef<TJsonReader<>> JsonReader = TJsonReaderFactory<>::Create(ResponseString);
52 // TSharedRef<TJsonReader<TCHAR>> JsonReader = TJsonReaderFactory<>::Create(ResponseString);
53 if(FJsonSerializer::Deserialize(JsonReader, JsonObject) && JsonObject.IsValid())
54 {
55 //- The simplest example parsing of the plain JSON //
56 //- Here you can expand to fetch your specific layout of values and objects and return //
57 //- it via a UStruct or separate params in the Completed.Broadcast() //
58 if (!JsonObject->TryGetStringField(TextField, OutString))
59 {
60 //- While response may be successful, we failed to retrieve the string field //
61 bSuccess = false;
62 }
63 }
64 else
65 {
66 // JSON deserialization failed
67 bSuccess = false;
68 }
69 }
70 OnHttpRequestCompleted.Broadcast(OutString, bSuccess);
71
72}
FString TextField
Definition HTTPFetchRequest.h:27
FOnHttpRequestCompleted OnHttpRequestCompleted
Definition HTTPFetchRequest.h:25

Member Data Documentation

◆ OnHttpRequestCompleted

FOnHttpRequestCompleted UHTTPFetchRequest::OnHttpRequestCompleted

◆ TextField

FString UHTTPFetchRequest::TextField

◆ URL

FString UHTTPFetchRequest::URL

The documentation for this class was generated from the following files: