UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
HttpModule.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Containers/Array.h"
6#include "Containers/Map.h"
8#include "CoreMinimal.h"
9#include "HAL/PlatformMath.h"
12#include "Misc/CoreMisc.h"
15
16class FHttpManager;
17class FOutputDevice;
18class IHttpRequest;
19class UWorld;
20
27{
28
29protected:
30
31 // FSelfRegisteringExec
32
42 HTTP_API virtual bool Exec_Runtime(UWorld* InWorld, const TCHAR* Cmd, FOutputDevice& Ar) override;
43
44public:
45
49 bool HandleHTTPCommand( const TCHAR* Cmd, FOutputDevice& Ar );
50
51 // FHttpModule
52
59 HTTP_API static FHttpModule& Get();
60
65
72
79 {
80 check(HttpManager != NULL);
81 return *HttpManager;
82 }
83
87 inline float GetHttpTotalTimeout() const
88 {
89 return HttpTotalTimeout;
90 }
91
95 inline float GetHttpConnectionTimeout() const
96 {
98 }
99
103 inline float GetHttpActivityTimeout() const
104 {
105 return HttpActivityTimeout;
106 }
107
112 {
113 return HttpMaxConnectionsPerServer;
114 }
115
120 {
121 return MaxReadBufferSize;
122 }
123
128 inline void SetMaxReadBufferSize(int32 SizeInBytes)
129 {
130 MaxReadBufferSize = SizeInBytes;
131 }
132
136 inline bool IsHttpEnabled() const
137 {
138 return bEnableHttp;
139 }
140
144 inline void ToggleNullHttp(bool bEnabled)
145 {
146 bUseNullHttp = bEnabled;
147 }
148
152 inline bool IsNullHttpEnabled() const
153 {
154 return bUseNullHttp;
155 }
156
160 inline float GetHttpDelayTime() const
161 {
162 return HttpDelayTime;
163 }
164
169 {
170 HttpDelayTime = InHttpDelayTime;
171 }
172
177 {
178 return HttpThreadActiveFrameTimeInSeconds;
179 }
180
185 {
186 HttpThreadActiveFrameTimeInSeconds = InHttpThreadActiveFrameTimeInSeconds;
187 }
188
193 {
194 return HttpThreadActiveMinimumSleepTimeInSeconds;
195 }
196
204
209 {
210 return HttpThreadIdleFrameTimeInSeconds;
211 }
212
217 {
218 HttpThreadIdleFrameTimeInSeconds = InHttpThreadIdleFrameTimeInSeconds;
219 }
220
225 {
226 return HttpThreadIdleMinimumSleepTimeInSeconds;
227 }
228
236
241 {
242 return HttpEventLoopThreadTickIntervalInSeconds;
243 }
244
249 const TMap<FString, FString>& GetDefaultHeaders() const { return DefaultHeaders; }
250
257 void AddDefaultHeader(const FString& HeaderName, const FString& HeaderValue) { DefaultHeaders.Emplace(HeaderName, HeaderValue); }
258
262 inline const FString& GetProxyAddress() const
263 {
264 return ProxyAddress;
265 }
266
271 inline void SetProxyAddress(const FString& InProxyAddress)
272 {
273 ProxyAddress = InProxyAddress;
274 }
275
279 inline const FString& GetHttpNoProxy() const
280 {
281 return HttpNoProxy;
282 }
283
288 inline bool SupportsDynamicProxy() const
289 {
290 return bSupportsDynamicProxy;
291 }
292
293 // IModuleInterface
294
299 HTTP_API virtual void StartupModule() override;
300
305 HTTP_API virtual void PostLoadCallback() override;
306
311 HTTP_API virtual void PreUnloadCallback() override;
312
316 HTTP_API virtual void ShutdownModule() override;
317
318protected:
325
326private:
330 void OnConfigSectionsChanged(const FString& IniFilename, const TSet<FString>& SectionNames);
331
333 FHttpManager* HttpManager = nullptr;
335 float HttpReceiveTimeout;
337 float HttpSendTimeout;
339 float HttpDelayTime;
341 float HttpThreadActiveFrameTimeInSeconds;
343 float HttpThreadActiveMinimumSleepTimeInSeconds;
345 float HttpThreadIdleFrameTimeInSeconds;
347 float HttpThreadIdleMinimumSleepTimeInSeconds;
349 float HttpEventLoopThreadTickIntervalInSeconds;
351 int32 HttpMaxConnectionsPerServer;
353 int32 MaxReadBufferSize;
355 bool bEnableHttp;
357 bool bUseNullHttp;
359 TMap<FString, FString> DefaultHeaders;
361 static FHttpModule* Singleton;
363 FString ProxyAddress;
365 FString HttpNoProxy;
367 bool bSupportsDynamicProxy;
369 TArray<FString> AllowedDomains;
370};
#define NULL
Definition oodle2base.h:134
#define check(expr)
Definition AssertionMacros.h:314
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition HttpManager.h:116
Definition HttpModule.h:27
float GetHttpThreadActiveMinimumSleepTimeInSeconds() const
Definition HttpModule.h:192
int32 GetHttpMaxConnectionsPerServer() const
Definition HttpModule.h:111
static HTTP_API FHttpModule & Get()
Definition HttpModule.cpp:368
virtual HTTP_API void ShutdownModule() override
Definition HttpModule.cpp:160
float GetHttpTotalTimeout() const
Definition HttpModule.h:87
float GetHttpThreadIdleFrameTimeInSeconds() const
Definition HttpModule.h:208
void SetHttpThreadIdleFrameTimeInSeconds(float InHttpThreadIdleFrameTimeInSeconds)
Definition HttpModule.h:216
virtual HTTP_API bool Exec_Runtime(UWorld *InWorld, const TCHAR *Cmd, FOutputDevice &Ar) override
Definition HttpModule.cpp:351
const TMap< FString, FString > & GetDefaultHeaders() const
Definition HttpModule.h:249
float GetHttpConnectionTimeout() const
Definition HttpModule.h:95
bool IsNullHttpEnabled() const
Definition HttpModule.h:152
const FString & GetProxyAddress() const
Definition HttpModule.h:262
virtual HTTP_API void PostLoadCallback() override
Definition HttpModule.cpp:151
float HttpConnectionTimeout
Definition HttpModule.h:320
void ToggleNullHttp(bool bEnabled)
Definition HttpModule.h:144
float GetHttpActivityTimeout() const
Definition HttpModule.h:103
float HttpTotalTimeout
Definition HttpModule.h:322
virtual HTTP_API TSharedRef< IHttpRequest, ESPMode::ThreadSafe > CreateRequest()
Definition HttpModule.cpp:379
bool HandleHTTPCommand(const TCHAR *Cmd, FOutputDevice &Ar)
Definition HttpModule.cpp:196
FHttpManager & GetHttpManager()
Definition HttpModule.h:78
float GetHttpThreadActiveFrameTimeInSeconds() const
Definition HttpModule.h:176
void AddDefaultHeader(const FString &HeaderName, const FString &HeaderValue)
Definition HttpModule.h:257
const FString & GetHttpNoProxy() const
Definition HttpModule.h:279
virtual HTTP_API void PreUnloadCallback() override
Definition HttpModule.cpp:156
void SetMaxReadBufferSize(int32 SizeInBytes)
Definition HttpModule.h:128
int32 GetMaxReadBufferSize() const
Definition HttpModule.h:119
float GetHttpThreadIdleMinimumSleepTimeInSeconds() const
Definition HttpModule.h:224
bool SupportsDynamicProxy() const
Definition HttpModule.h:288
float HttpActivityTimeout
Definition HttpModule.h:324
virtual HTTP_API void StartupModule() override
Definition HttpModule.cpp:89
HTTP_API void UpdateConfigs()
Definition HttpModule.cpp:57
bool IsHttpEnabled() const
Definition HttpModule.h:136
float GetHttpEventLoopThreadTickIntervalInSeconds() const
Definition HttpModule.h:240
void SetProxyAddress(const FString &InProxyAddress)
Definition HttpModule.h:271
void SetHttpDelayTime(float InHttpDelayTime)
Definition HttpModule.h:168
void SetHttpThreadActiveFrameTimeInSeconds(float InHttpThreadActiveFrameTimeInSeconds)
Definition HttpModule.h:184
void SetHttpThreadIdleMinimumSleepTimeInSeconds(float InHttpThreadIdleMinimumSleepTimeInSeconds)
Definition HttpModule.h:232
float GetHttpDelayTime() const
Definition HttpModule.h:160
void SetHttpThreadActiveMinimumSleepTimeInSeconds(float InHttpThreadActiveMinimumSleepTimeInSeconds)
Definition HttpModule.h:200
Definition OutputDevice.h:133
Definition CoreMisc.h:28
Definition IHttpRequest.h:171
Definition ModuleInterface.h:14
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition SharedPointer.h:153
Definition World.h:918