UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
TransactionallySafeHttpRequest.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
9
17{
18public:
21
22 // IHttpBase
23 const FString& GetURL() const override;
24 FString GetURLParameter(const FString& ParameterName) const override;
25 FString GetHeader(const FString& HeaderName) const override;
26 TArray<FString> GetAllHeaders() const override;
27 FString GetContentType() const override;
28 uint64 GetContentLength() const override;
29 const TArray<uint8>& GetContent() const override;
30
31 // IHttpRequest
32 FString GetVerb() const override;
33 void SetVerb(const FString& InVerb) override;
34 void SetURL(const FString& InURL) override;
35 FString GetOption(const FName Option) const override;
36 void SetOption(const FName Option, const FString& OptionValue) override;
37 void SetContent(const TArray<uint8>& ContentPayload) override;
39 void SetContentAsString(const FString& ContentString) override;
40 bool SetContentAsStreamedFile(const FString& Filename) override;
43 void SetHeader(const FString& HeaderName, const FString& HeaderValue) override;
44 void AppendToHeader(const FString& HeaderName, const FString& AdditionalHeaderValue) override;
45 bool ProcessRequest() override;
46 void CancelRequest() override;
47 EHttpRequestStatus::Type GetStatus() const override;
48 EHttpFailureReason GetFailureReason() const override;
49 const FString& GetEffectiveURL() const override;
50 const FHttpResponsePtr GetResponse() const override;
51 void Tick(float DeltaSeconds) override;
52 float GetElapsedTime() const override;
55 virtual void SetPriority(EHttpRequestPriority InPriority) override;
56 virtual EHttpRequestPriority GetPriority() const override;
57 void SetTimeout(float InTimeoutSecs) override;
58 void ClearTimeout() override;
59 void ResetTimeoutStatus() override;
60 TOptional<float> GetTimeout() const override;
61 void SetActivityTimeout(float InTimeoutSecs) override;
62 void ProcessRequestUntilComplete() override;
63
69
70private:
71 // The InnerRequest can be one of two things:
72 //
73 // * An FClosedHttpRequest, which is created when a transactionally-safe HTTP request is created from inside of a transaction.
74 // A closed request will queue up work and then play it back into a PlatformRequest when the transaction commits.
75 // * An real request created from a call to FPlatformHttp::ConstructRequest.
76 // This replaces the original InnerRequest once we reach the open.
77 TSharedPtr<IHttpRequest> InnerRequest;
78
80 friend class FClosedHttpRequest;
81};
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EHttpFailureReason
Definition IHttpBase.h:59
EHttpRequestPriority
Definition IHttpRequest.h:25
EHttpRequestDelegateThreadPolicy
Definition IHttpRequest.h:15
Definition NameTypes.h:617
Definition TransactionallySafeHttpRequest.cpp:17
Definition TransactionallySafeHttpRequest.h:17
bool SetContentFromStream(TSharedRef< FArchive, ESPMode::ThreadSafe > Stream) override
Definition TransactionallySafeHttpRequest.cpp:451
void ResetTimeoutStatus() override
Definition TransactionallySafeHttpRequest.cpp:551
bool SetResponseBodyReceiveStream(TSharedRef< FArchive > Stream) override
Definition TransactionallySafeHttpRequest.cpp:481
FHttpRequestProgressDelegate64 & OnRequestProgress64() override
Definition TransactionallySafeHttpRequest.cpp:576
bool SetContentAsStreamedFile(const FString &Filename) override
Definition TransactionallySafeHttpRequest.cpp:446
FHttpRequestCompleteDelegate & OnProcessRequestComplete() override
Definition TransactionallySafeHttpRequest.cpp:571
void SetURL(const FString &InURL) override
Definition TransactionallySafeHttpRequest.cpp:386
FHttpRequestStatusCodeReceivedDelegate & OnStatusCodeReceived() override
Definition TransactionallySafeHttpRequest.cpp:591
void SetActivityTimeout(float InTimeoutSecs) override
Definition TransactionallySafeHttpRequest.cpp:561
const FString & GetEffectiveURL() const override
Definition TransactionallySafeHttpRequest.cpp:461
float GetElapsedTime() const override
Definition TransactionallySafeHttpRequest.cpp:516
FString GetHeader(const FString &HeaderName) const override
Definition TransactionallySafeHttpRequest.cpp:396
void ProcessRequestUntilComplete() override
Definition TransactionallySafeHttpRequest.cpp:566
virtual EHttpRequestPriority GetPriority() const override
Definition TransactionallySafeHttpRequest.cpp:536
bool ProcessRequest() override
Definition TransactionallySafeHttpRequest.cpp:491
const FString & GetURL() const override
Definition TransactionallySafeHttpRequest.cpp:381
const TArray< uint8 > & GetContent() const override
Definition TransactionallySafeHttpRequest.cpp:436
void SetContent(const TArray< uint8 > &ContentPayload) override
Definition TransactionallySafeHttpRequest.cpp:426
void SetTimeout(float InTimeoutSecs) override
Definition TransactionallySafeHttpRequest.cpp:541
void ClearTimeout() override
Definition TransactionallySafeHttpRequest.cpp:546
FString GetURLParameter(const FString &ParameterName) const override
Definition TransactionallySafeHttpRequest.cpp:466
FString GetContentType() const override
Definition TransactionallySafeHttpRequest.cpp:476
EHttpRequestStatus::Type GetStatus() const override
Definition TransactionallySafeHttpRequest.cpp:456
FString GetOption(const FName Option) const override
Definition TransactionallySafeHttpRequest.cpp:416
FHttpRequestHeaderReceivedDelegate & OnHeaderReceived() override
Definition TransactionallySafeHttpRequest.cpp:586
void CancelRequest() override
Definition TransactionallySafeHttpRequest.cpp:496
void SetContentAsString(const FString &ContentString) override
Definition TransactionallySafeHttpRequest.cpp:441
FHttpRequestWillRetryDelegate & OnRequestWillRetry() override
Definition TransactionallySafeHttpRequest.cpp:581
virtual void SetPriority(EHttpRequestPriority InPriority) override
Definition TransactionallySafeHttpRequest.cpp:531
void SetHeader(const FString &HeaderName, const FString &HeaderValue) override
Definition TransactionallySafeHttpRequest.cpp:391
void SetDelegateThreadPolicy(EHttpRequestDelegateThreadPolicy InThreadPolicy) override
Definition TransactionallySafeHttpRequest.cpp:521
TArray< FString > GetAllHeaders() const override
Definition TransactionallySafeHttpRequest.cpp:401
FString GetVerb() const override
Definition TransactionallySafeHttpRequest.cpp:406
void SetVerb(const FString &InVerb) override
Definition TransactionallySafeHttpRequest.cpp:411
void AppendToHeader(const FString &HeaderName, const FString &AdditionalHeaderValue) override
Definition TransactionallySafeHttpRequest.cpp:486
const FHttpResponsePtr GetResponse() const override
Definition TransactionallySafeHttpRequest.cpp:506
TOptional< float > GetTimeout() const override
Definition TransactionallySafeHttpRequest.cpp:556
void SetOption(const FName Option, const FString &OptionValue) override
Definition TransactionallySafeHttpRequest.cpp:421
EHttpRequestDelegateThreadPolicy GetDelegateThreadPolicy() const override
Definition TransactionallySafeHttpRequest.cpp:526
virtual ~FTransactionallySafeHttpRequest()=default
uint64 GetContentLength() const override
Definition TransactionallySafeHttpRequest.cpp:471
FTransactionallySafeHttpRequest()
Definition TransactionallySafeHttpRequest.cpp:375
EHttpFailureReason GetFailureReason() const override
Definition TransactionallySafeHttpRequest.cpp:501
Definition IHttpRequest.h:171
Definition Array.h:670
Definition DelegateSignatureImpl.inl:310
Definition SharedPointer.h:153
Type
Definition IHttpBase.h:13
Definition Optional.h:131