UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FAppleHttpRequest Class Reference

#include <AppleHttp.h>

+ Inheritance diagram for FAppleHttpRequest:

Classes

struct  FAppleHttpStreamFactory
 

Public Member Functions

virtual FString GetHeader (const FString &HeaderName) const override
 
virtual TArray< FString > GetAllHeaders () const override
 
virtual FString GetContentType () const override
 
virtual uint64 GetContentLength () const override
 
virtual const TArray< uint8 > & GetContent () const override
 
virtual FString GetVerb () const override
 
virtual void SetVerb (const FString &Verb) override
 
virtual void SetContent (const TArray< uint8 > &ContentPayload) override
 
virtual void SetContent (TArray< uint8 > &&ContentPayload) override
 
virtual void SetContentAsString (const FString &ContentString) override
 
virtual bool SetContentAsStreamedFile (const FString &Filename) override
 
virtual bool SetContentFromStream (TSharedRef< FArchive > Stream) override
 
virtual void SetHeader (const FString &HeaderName, const FString &HeaderValue) override
 
virtual void AppendToHeader (const FString &HeaderName, const FString &AdditionalHeaderValue) override
 
virtual bool ProcessRequest () override
 
virtual void Tick (float DeltaSeconds) override
 
virtual bool StartThreadedRequest () override
 
virtual void FinishRequest () override
 
virtual bool IsThreadedRequestComplete () override
 
virtual void TickThreadedRequest (float DeltaSeconds) override
 
 FAppleHttpRequest (NSURLSession *InSession, NSURLSession *InBackgroundSession)
 
virtual ~FAppleHttpRequest ()
 
bool IsInitializedWithValidStream () const
 
void HandleResponseHeadersReceived (TMap< FString, FString > &&ResponseHeaders)
 
bool HandleResponseBodyDataReceived (uint8 *Ptr, uint64 Size)
 
HTTP_API void StartActivityTimeoutTimer ()
 
HTTP_API void ResetActivityTimeoutTimer (FStringView Reason)
 
HTTP_API void StopActivityTimeoutTimer ()
 
HTTP_API void HandleStatusCodeReceived (int32 StatusCode)
 
HTTP_API void SetEffectiveURL (const FString &InEffectiveURL)
 
HTTP_API bool PassReceivedDataToStream (void *Ptr, int64 Length)
 
- Public Member Functions inherited from FHttpRequestCommon
 FHttpRequestCommon ()
 
virtual HTTP_API FString GetURLParameter (const FString &ParameterName) const override
 
virtual HTTP_API EHttpRequestStatus::Type GetStatus () const override
 
virtual HTTP_API const FString & GetEffectiveURL () const override
 
virtual HTTP_API EHttpFailureReason GetFailureReason () const override
 
virtual HTTP_API void SetDelegateThreadPolicy (EHttpRequestDelegateThreadPolicy InDelegateThreadPolicy) override
 
virtual HTTP_API EHttpRequestDelegateThreadPolicy GetDelegateThreadPolicy () const override
 
virtual HTTP_API FString GetOption (const FName Option) const override
 
virtual HTTP_API void SetOption (const FName Option, const FString &OptionValue) override
 
virtual HTTP_API void SetTimeout (float InTimeoutSecs) override
 
virtual HTTP_API void ClearTimeout () override
 
virtual HTTP_API void ResetTimeoutStatus () override
 
virtual HTTP_API TOptional< floatGetTimeout () const override
 
HTTP_API float GetTimeoutOrDefault () const
 
virtual HTTP_API void SetActivityTimeout (float InTimeoutSecs) override
 
virtual HTTP_API const FHttpResponsePtr GetResponse () const override
 
virtual HTTP_API void CancelRequest () override
 
virtual HTTP_API void Shutdown () override
 
virtual HTTP_API void ProcessRequestUntilComplete () override
 
virtual HTTP_API bool SetResponseBodyReceiveStream (TSharedRef< FArchive > Stream) override
 
virtual HTTP_API float GetElapsedTime () const override
 
HTTP_API void StartWaitingInQueue ()
 
HTTP_API float GetTimeStartedWaitingInQueue () const
 
virtual HTTP_API void SetURL (const FString &InURL) override
 
virtual HTTP_API const FString & GetURL () const override
 
virtual HTTP_API void SetPriority (EHttpRequestPriority InPriority) override
 
virtual HTTP_API EHttpRequestPriority GetPriority () const override
 
- Public Member Functions inherited from FHttpRequestImpl
virtual HTTP_API FHttpRequestCompleteDelegateOnProcessRequestComplete () override
 
virtual HTTP_API FHttpRequestProgressDelegate64OnRequestProgress64 () override
 
virtual HTTP_API FHttpRequestStatusCodeReceivedDelegateOnStatusCodeReceived () override
 
virtual HTTP_API FHttpRequestHeaderReceivedDelegateOnHeaderReceived () override
 
virtual HTTP_API FHttpRequestWillRetryDelegateOnRequestWillRetry () override
 
- Public Member Functions inherited from IHttpRequest
virtual bool SetContentFromStream (TSharedRef< FArchive, ESPMode::ThreadSafe > Stream)=0
 
HTTP_API bool SetResponseBodyReceiveStreamDelegateV2 (FHttpRequestStreamDelegateV2 StreamDelegate)
 
virtual ~IHttpRequest ()=default
 
- Public Member Functions inherited from IHttpBase
virtual ~IHttpBase ()=default
 
- Public Member Functions inherited from TSharedFromThis< IHttpRequest, ESPMode::ThreadSafe >
TSharedRef< IHttpRequest, Mode > AsShared ()
 
TSharedRef< IHttpRequest const, Mode > AsShared () const
 
TSharedRef< SubobjectType, Mode > AsSharedSubobject (SubobjectType *SubobjectPtr) const
 
TWeakPtr< IHttpRequest, Mode > AsWeak ()
 
TWeakPtr< IHttpRequest const, Mode > AsWeak () const
 
TWeakPtr< SubobjectType, Mode > AsWeakSubobject (SubobjectType *SubobjectPtr) const
 
void UpdateWeakReferenceInternal (TSharedPtr< SharedPtrType, SharedPtrMode > const *InSharedPtr, OtherType *InObject) const
 
void UpdateWeakReferenceInternal (TSharedRef< SharedRefType, SharedPtrMode > const *InSharedRef, OtherType *InObject) const
 
UE_FORCEINLINE_HINT bool DoesSharedInstanceExist () const
 

Public Attributes

PACKAGE_SCOPE : using FHttpRequestCommon::StartProcessTime
 
double ConnectTime
 

Friends

class FAppleHttpResponse
 

Additional Inherited Members

- Protected Member Functions inherited from FHttpRequestCommon
HTTP_API bool PreProcess ()
 
HTTP_API void PostProcess ()
 
HTTP_API void PopulateUserAgentHeader ()
 
HTTP_API bool PreCheck () const
 
virtual HTTP_API void ClearInCaseOfRetry ()
 
HTTP_API void SetStatus (EHttpRequestStatus::Type InCompletionStatus)
 
HTTP_API void SetFailureReason (EHttpFailureReason InFailureReason)
 
HTTP_API void FinishRequestNotInHttpManager ()
 
HTTP_API void HandleRequestSucceed ()
 
HTTP_API void HandleRequestFailed ()
 
HTTP_API void StartActivityTimeoutTimer ()
 
HTTP_API void StartActivityTimeoutTimerBy (double DelayToTrigger)
 
HTTP_API void ResetActivityTimeoutTimer (FStringView Reason)
 
HTTP_API void OnActivityTimeoutTimerTaskTrigger ()
 
HTTP_API void StopActivityTimeoutTimer ()
 
HTTP_API void StartTotalTimeoutTimer ()
 
HTTP_API void StopTotalTimeoutTimer ()
 
HTTP_API void OnTotalTimeoutTimerTaskTrigger ()
 
HTTP_API void HandleStatusCodeReceived (int32 StatusCode)
 
HTTP_API void TriggerStatusCodeReceivedDelegate (int32 StatusCode)
 
HTTP_API void SetEffectiveURL (const FString &InEffectiveURL)
 
HTTP_API bool PassReceivedDataToStream (void *Ptr, int64 Length)
 
HTTP_API void StopPassingReceivedData ()
 
HTTP_API float GetActivityTimeoutOrDefault () const
 
HTTP_API bool SetContentAsStreamedFileDefaultImpl (const FString &Filename)
 
HTTP_API bool OpenRequestPayloadDefaultImpl ()
 
HTTP_API void CloseRequestPayloadDefaultImpl ()
 
HTTP_API void LogFailure () const
 
HTTP_API void LogResponse (const TSharedPtr< IHttpResponse > &InResponse)
 
HTTP_API bool TriggerMockResponse ()
 
HTTP_API void InitResponse ()
 
void OnFinishRequest (bool bSucceeded)
 
- Protected Member Functions inherited from FHttpRequestImpl
HTTP_API void BroadcastResponseHeadersReceived ()
 
- Protected Member Functions inherited from TSharedFromThis< IHttpRequest, ESPMode::ThreadSafe >
 TSharedFromThis ()
 
 TSharedFromThis (TSharedFromThis const &)
 
UE_FORCEINLINE_HINT TSharedFromThisoperator= (TSharedFromThis const &)
 
 ~TSharedFromThis ()
 
- Static Protected Member Functions inherited from TSharedFromThis< IHttpRequest, ESPMode::ThreadSafe >
static UE_FORCEINLINE_HINT TSharedRef< OtherType, Mode > SharedThis (OtherType *ThisPtr)
 
static UE_FORCEINLINE_HINT TSharedRef< OtherType const, Mode > SharedThis (const OtherType *ThisPtr)
 
- Protected Attributes inherited from FHttpRequestCommon
EHttpRequestStatus::Type CompletionStatus = EHttpRequestStatus::NotStarted
 
EHttpFailureReason FailureReason = EHttpFailureReason::None
 
EHttpRequestDelegateThreadPolicy DelegateThreadPolicy = EHttpRequestDelegateThreadPolicy::CompleteOnGameThread
 
TOptional< floatTimeoutSecs
 
TOptional< floatActivityTimeoutSecs
 
std::atomic< boolbTimedOut = false
 
std::atomic< boolbActivityTimedOut = false
 
std::atomic< boolbCanceled = false
 
bool bUsePlatformActivityTimeout = true
 
double RequestStartTimeAbsoluteSeconds
 
double ActivityTimeoutAt
 
TSharedPtr< IHttpTaskTimerHandleTotalTimeoutHttpTaskTimerHandle
 
TSharedPtr< IHttpTaskTimerHandleActivityTimeoutHttpTaskTimerHandle
 
FCriticalSection HttpTaskTimerHandleCriticalSection
 
double StartProcessTime = 0.0
 
double ConnectTime = -1.0
 
FString URL
 
FString EffectiveURL
 
TSharedPtr< FHttpResponseCommonResponseCommon
 
TSharedPtr< FArchiveResponseBodyReceiveStream
 
FCriticalSection ResponseBodyReceiveStreamCriticalSection
 
std::atomic< boolbInitializedWithValidStream = false
 
TUniquePtr< FRequestPayloadRequestPayload
 
TMap< const FName, FString > Options
 
float ElapsedTime = 0.0f
 
float TimeStartedWaitingInQueue = 0.0f
 
EHttpRequestPriority Priority = EHttpRequestPriority::Normal
 
- Protected Attributes inherited from FHttpRequestImpl
FHttpRequestCompleteDelegate RequestCompleteDelegate
 
FHttpRequestProgressDelegate64 RequestProgressDelegate64
 
FHttpRequestStatusCodeReceivedDelegate StatusCodeReceivedDelegate
 
FHttpRequestHeaderReceivedDelegate HeaderReceivedDelegate
 
FHttpRequestWillRetryDelegate OnRequestWillRetryDelegate
 

Detailed Description

Apple implementation of an Http request

Constructor & Destructor Documentation

◆ FAppleHttpRequest()

FAppleHttpRequest::FAppleHttpRequest ( NSURLSession InSession,
NSURLSession InBackgroundSession 
)

Constructor

Parameters
InSession- NSURLSession session used to create NSURLSessionTask to retrieve the response
InBackgroundSession- NSURLSession session used to create NSURLSessionTask to retrieve the response in the background

◆ ~FAppleHttpRequest()

FAppleHttpRequest::~FAppleHttpRequest ( )
virtual

Destructor. Clean up any connection/request handles

Member Function Documentation

◆ AppendToHeader()

void FAppleHttpRequest::AppendToHeader ( const FString &  HeaderName,
const FString &  AdditionalHeaderValue 
)
overridevirtual

Appends to the value already set in the header. If there is already content in that header, a comma delimiter is used. If the header is as of yet unset, the result is the same as calling SetHeader Content-Length is the only header set for you. Also see: SetHeader()

Parameters
HeaderName- Name of the header (ie, Content-Type)
AdditionalHeaderValue- Value to add to the existing contents of the specified header. comma is inserted between old value and new value, per HTTP specifications

Implements IHttpRequest.

◆ FinishRequest()

void FAppleHttpRequest::FinishRequest ( )
overridevirtual

Implements FHttpRequestCommon.

◆ GetAllHeaders()

TArray< FString > FAppleHttpRequest::GetAllHeaders ( ) const
overridevirtual

Return all headers in an array in "Name: Value" format.

Returns
the header array of strings

Implements IHttpBase.

◆ GetContent()

const TArray< uint8 > & FAppleHttpRequest::GetContent ( ) const
overridevirtual

Get the content payload of the request or response.

Parameters
Content- array that will be filled with the content.

Implements IHttpBase.

◆ GetContentLength()

uint64 FAppleHttpRequest::GetContentLength ( ) const
overridevirtual

Shortcut to get the Content-Length header value. Will not always return non-zero. If you want the real length of the payload, get the payload and check it's length.

Returns
the content length (if available)

Implements IHttpBase.

◆ GetContentType()

FString FAppleHttpRequest::GetContentType ( ) const
overridevirtual

Shortcut to get the Content-Type header value (if available)

Returns
the content type.

Implements IHttpBase.

◆ GetHeader()

FString FAppleHttpRequest::GetHeader ( const FString &  HeaderName) const
overridevirtual

Gets the value of a header, or empty string if not found.

Parameters
HeaderName- name of the header to set.

Implements IHttpBase.

◆ GetVerb()

FString FAppleHttpRequest::GetVerb ( ) const
overridevirtual

Gets the verb (GET, PUT, POST) used by the request.

Returns
the verb string

Implements IHttpRequest.

◆ HandleResponseBodyDataReceived()

bool FAppleHttpRequest::HandleResponseBodyDataReceived ( uint8 Ptr,
uint64  Size 
)

◆ HandleResponseHeadersReceived()

void FAppleHttpRequest::HandleResponseHeadersReceived ( TMap< FString, FString > &&  ResponseHeaders)

◆ HandleStatusCodeReceived()

void FHttpRequestCommon::HandleStatusCodeReceived ( int32  StatusCode)

◆ IsInitializedWithValidStream()

bool FAppleHttpRequest::IsInitializedWithValidStream ( ) const

◆ IsThreadedRequestComplete()

bool FAppleHttpRequest::IsThreadedRequestComplete ( )
overridevirtual

Implements FHttpRequestCommon.

◆ PassReceivedDataToStream()

bool FHttpRequestCommon::PassReceivedDataToStream ( void Ptr,
int64  Length 
)

◆ ProcessRequest()

bool FAppleHttpRequest::ProcessRequest ( )
overridevirtual

Called to begin processing the request. OnProcessRequestComplete delegate is always called when the request completes or on error if it is bound. A request can be re-used but not while still being processed.

Returns
if the request was successfully started.

Implements IHttpRequest.

◆ ResetActivityTimeoutTimer()

void FHttpRequestCommon::ResetActivityTimeoutTimer ( FStringView  Reason)

◆ SetContent() [1/2]

void FAppleHttpRequest::SetContent ( const TArray< uint8 > &  ContentPayload)
overridevirtual

Sets the content of the request (optional data). Usually only set for POST requests.

Parameters
ContentPayload- payload to set.

Implements IHttpRequest.

◆ SetContent() [2/2]

void FAppleHttpRequest::SetContent ( TArray< uint8 > &&  ContentPayload)
overridevirtual

Sets the content of the request (optional data). Usually only set for POST requests.

This version lets the API take ownership of the payload directly, helpful for larger payloads.

Parameters
ContentPayload- payload to set.

Implements IHttpRequest.

◆ SetContentAsStreamedFile()

bool FAppleHttpRequest::SetContentAsStreamedFile ( const FString &  Filename)
overridevirtual

Sets the content of the request to stream from a file.

Parameters
FileName- filename from which to stream the body.
Returns
True if the file is valid and will be used to stream the request. False otherwise.

Implements IHttpRequest.

◆ SetContentAsString()

void FAppleHttpRequest::SetContentAsString ( const FString &  ContentString)
overridevirtual

Sets the content of the request as a string encoded as UTF8.

Parameters
ContentString- payload to set.

Implements IHttpRequest.

◆ SetContentFromStream()

bool FAppleHttpRequest::SetContentFromStream ( TSharedRef< FArchive Stream)
overridevirtual

◆ SetEffectiveURL()

void FHttpRequestCommon::SetEffectiveURL ( const FString &  InEffectiveURL)

◆ SetHeader()

void FAppleHttpRequest::SetHeader ( const FString &  HeaderName,
const FString &  HeaderValue 
)
overridevirtual

Sets optional header info. SetHeader for a given HeaderName will overwrite any previous values Use AppendToHeader to append more values for the same header Content-Length is the only header set for you. Required headers depends on the request itself. Eg. "multipart/form-data" needed for a form post

Parameters
HeaderName- Name of the header (ie, Content-Type)
HeaderValue- Value of the header

Implements IHttpRequest.

◆ SetVerb()

void FAppleHttpRequest::SetVerb ( const FString &  Verb)
overridevirtual

Sets the verb used by the request. Eg. (GET, PUT, POST) Should be set before calling ProcessRequest. If not specified then a GET is assumed.

Parameters
Verb- verb to use.

Implements IHttpRequest.

◆ StartActivityTimeoutTimer()

void FHttpRequestCommon::StartActivityTimeoutTimer ( )

◆ StartThreadedRequest()

bool FAppleHttpRequest::StartThreadedRequest ( )
overridevirtual

Implements FHttpRequestCommon.

◆ StopActivityTimeoutTimer()

void FHttpRequestCommon::StopActivityTimeoutTimer ( )

◆ Tick()

void FAppleHttpRequest::Tick ( float  DeltaSeconds)
overridevirtual

Used to tick the request

Parameters
DeltaSeconds- seconds since last ticked

Implements IHttpRequest.

◆ TickThreadedRequest()

void FAppleHttpRequest::TickThreadedRequest ( float  DeltaSeconds)
overridevirtual

Implements FHttpRequestCommon.

Friends And Related Symbol Documentation

◆ FAppleHttpResponse

friend class FAppleHttpResponse
friend

Member Data Documentation

◆ __pad0__

PACKAGE_SCOPE FAppleHttpRequest::__pad0__

◆ ConnectTime

double FHttpRequestCommon::ConnectTime

Record how long it take to connect to the endpoint


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