UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AppleHttp.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"
8#include "PlatformHttp.h"
9#include "HttpPackage.h"
10#include "Misc/TVariant.h"
11
17
22{
23public:
24 // implementation friends
25 friend class FAppleHttpResponse;
26
27 //~ Begin IHttpBase Interface
28 virtual FString GetHeader(const FString& HeaderName) const override;
29 virtual TArray<FString> GetAllHeaders() const override;
30 virtual FString GetContentType() const override;
31 virtual uint64 GetContentLength() const override;
32 virtual const TArray<uint8>& GetContent() const override;
33 //~ End IHttpBase Interface
34
35 //~ Begin IHttpRequest Interface
36 virtual FString GetVerb() const override;
37 virtual void SetVerb(const FString& Verb) override;
38 virtual void SetContent(const TArray<uint8>& ContentPayload) override;
39 virtual void SetContent(TArray<uint8>&& ContentPayload) override;
40 virtual void SetContentAsString(const FString& ContentString) override;
41 virtual bool SetContentAsStreamedFile(const FString& Filename) override;
43 virtual void SetHeader(const FString& HeaderName, const FString& HeaderValue) override;
44 virtual void AppendToHeader(const FString& HeaderName, const FString& AdditionalHeaderValue) override;
45 virtual bool ProcessRequest() override;
46 virtual void Tick(float DeltaSeconds) override;
47 //~ End IHttpRequest Interface
48
49 //~ Begin IHttpRequestThreaded Interface
50 virtual bool StartThreadedRequest() override;
51 virtual void FinishRequest() override;
52 virtual bool IsThreadedRequestComplete() override;
53 virtual void TickThreadedRequest(float DeltaSeconds) override;
54 //~ End IHttpRequestThreaded Interface
55
63
67 virtual ~FAppleHttpRequest();
68
79
81
84
85private:
89 void CheckProgressDelegate();
90
96 virtual bool SetupRequest() override;
97
98 virtual FHttpResponsePtr CreateResponse() override;
99 virtual void MockResponseData() override;
100
101 virtual void AbortRequest() override;
102
106 virtual void CleanupRequest() override;
107
108private:
110 NSMutableURLRequest* Request;
111
113 NSURLSession* Session;
115 NSURLSession* BackgroundSession;
116
118 NSURLSessionTask* Task;
119
121 struct FNoStreamSource{};
122 struct FInvalidStreamSource{};
129
131 uint64 ContentBytesLength;
132
134 mutable TArray<uint8> StorageForGetContent;
135
137 int32 LastReportedBytesWritten;
138
140 int32 LastReportedBytesRead;
141};
142
144
149{
150public:
151 //~ Begin IHttpBase Interface
152 virtual TArray<FString> GetAllHeaders() const override;
153 virtual FString GetContentType() const override;
154 virtual uint64 GetContentLength() const override;
155 //~ End IHttpBase Interface
156
160 bool IsReady() const;
161
165 const uint64 GetNumBytesReceived() const;
166
170 const uint64 GetNumBytesWritten() const;
171
175 void CleanSharedObjects();
176
182
184
186
188
195
199 virtual ~FAppleHttpResponse();
200
201private:
202 // implementation friends
203 friend class FAppleHttpRequest;
204
208 EHttpRequestStatus::Type GetStatusFromDelegate() const;
209
213 EHttpFailureReason GetFailureReasonFromDelegate() const;
214
215 // Delegate implementation. Keeps the response state and data
216 FAppleHttpResponseDelegate* ResponseDelegate;
217};
#define PACKAGE_SCOPE
Definition CoreOnlinePackage.h:9
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
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
#define DECLARE_DELEGATE(DelegateName)
Definition DelegateCombinations.h:20
EHttpFailureReason
Definition IHttpBase.h:59
uint32 Size
Definition VulkanMemory.cpp:4034
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition AppleHttp.h:22
virtual void SetContent(const TArray< uint8 > &ContentPayload) override
Definition AppleHttp.cpp:531
virtual FString GetVerb() const override
Definition AppleHttp.cpp:643
virtual void SetHeader(const FString &HeaderName, const FString &HeaderValue) override
Definition AppleHttp.cpp:475
virtual void SetContentAsString(const FString &ContentString) override
Definition AppleHttp.cpp:575
void HandleResponseHeadersReceived(TMap< FString, FString > &&ResponseHeaders)
Definition AppleHttp.cpp:867
virtual bool IsThreadedRequestComplete() override
Definition AppleHttp.cpp:950
virtual bool SetContentFromStream(TSharedRef< FArchive > Stream) override
Definition AppleHttp.cpp:625
virtual bool SetContentAsStreamedFile(const FString &Filename) override
Definition AppleHttp.cpp:592
virtual void FinishRequest() override
Definition AppleHttp.cpp:779
virtual TArray< FString > GetAllHeaders() const override
Definition AppleHttp.cpp:500
virtual const TArray< uint8 > & GetContent() const override
Definition AppleHttp.cpp:515
bool IsInitializedWithValidStream() const
Definition AppleHttp.cpp:862
virtual bool ProcessRequest() override
Definition AppleHttp.cpp:656
virtual FString GetHeader(const FString &HeaderName) const override
Definition AppleHttp.cpp:467
virtual uint64 GetContentLength() const override
Definition AppleHttp.cpp:570
virtual bool StartThreadedRequest() override
Definition AppleHttp.cpp:917
bool HandleResponseBodyDataReceived(uint8 *Ptr, uint64 Size)
Definition AppleHttp.cpp:886
virtual ~FAppleHttpRequest()
Definition AppleHttp.cpp:460
virtual void SetVerb(const FString &Verb) override
Definition AppleHttp.cpp:649
virtual void TickThreadedRequest(float DeltaSeconds) override
Definition AppleHttp.cpp:956
virtual void AppendToHeader(const FString &HeaderName, const FString &AdditionalHeaderValue) override
Definition AppleHttp.cpp:482
virtual FString GetContentType() const override
Definition AppleHttp.cpp:564
Definition AppleHttp.cpp:19
Definition AppleHttp.h:149
const uint64 GetNumBytesReceived() const
Definition AppleHttp.cpp:1045
virtual ~FAppleHttpResponse()
Definition AppleHttp.cpp:977
virtual uint64 GetContentLength() const override
Definition AppleHttp.cpp:1025
FAppleHttpResponseDelegate * GetResponseDelegate() const
Definition AppleHttp.cpp:993
void SetHeaders(TMap< FString, FString > &&InHeaders)
Definition AppleHttp.cpp:988
bool IsReady() const
Definition AppleHttp.cpp:1030
void CleanSharedObjects()
Definition AppleHttp.cpp:998
const uint64 GetNumBytesWritten() const
Definition AppleHttp.cpp:1050
void SetNewAppleHttpEventDelegate(FNewAppleHttpEventDelegate &&Delegate)
Definition AppleHttp.cpp:983
virtual TArray< FString > GetAllHeaders() const override
Definition AppleHttp.cpp:1003
virtual FString GetContentType() const override
Definition AppleHttp.cpp:1020
Definition HttpRequestCommon.h:15
HTTP_API void StartActivityTimeoutTimer()
Definition HttpRequestCommon.cpp:393
HTTP_API void SetEffectiveURL(const FString &InEffectiveURL)
Definition HttpRequestCommon.cpp:621
double StartProcessTime
Definition HttpRequestCommon.h:168
HTTP_API void HandleStatusCodeReceived(int32 StatusCode)
Definition HttpRequestCommon.cpp:597
HTTP_API bool PassReceivedDataToStream(void *Ptr, int64 Length)
Definition HttpRequestCommon.cpp:682
double ConnectTime
Definition HttpRequestCommon.h:171
HTTP_API void ResetActivityTimeoutTimer(FStringView Reason)
Definition HttpRequestCommon.cpp:469
HTTP_API void StopActivityTimeoutTimer()
Definition HttpRequestCommon.cpp:487
HTTP_API void BroadcastResponseHeadersReceived()
Definition HttpRequestImpl.cpp:40
Definition HttpResponseCommon.h:13
void AppendToPayload(const uint8 *Ptr, int64 Size)
Definition HttpResponseCommon.cpp:110
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition SharedPointer.h:153
Definition TVariant.h:48
Type
Definition IHttpBase.h:13
Definition AppleHttp.cpp:697