UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
IHttpResponse.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"
7
8#define LOCTEXT_NAMESPACE "IHttpResponse"
9
11{
12 static const FString ErrorNamespace = TEXT("errors.com.epicgames.httpresponse");
16 #define HTTP_RESPONSE_CODE(Name, Value) Name = Value,
17 enum Type
18 {
19 #include "IHttpResponseCodes.inl"
20 };
21 #undef HTTP_RESPONSE_CODE
22
23
24 #define HTTP_RESPONSE_CODE(Name,Value) case Name: return TEXT(#Value":"#Name);
25 inline FString ResponseCodeToString(Type ResponseCode)
26 {
27 switch (ResponseCode)
28 {
29 #include "IHttpResponseCodes.inl"
30 }
31 return FString::Printf(TEXT("%d"), (int32)(ResponseCode));
32 }
33 #undef HTTP_RESPONSE_CODE
38 inline bool IsOk(int32 StatusCode)
39 {
40 return StatusCode >= Ok && StatusCode <= PartialContent;
41 }
42
43 inline FString GetResponseCodeAsErrorCode(int32 StatusCode)
44 {
45 return FString::Printf(TEXT("%s.%s"), *ErrorNamespace, *ResponseCodeToString((Type)StatusCode));
46 }
47
53 {
54 switch (StatusCode)
55 {
56 case EHttpResponseCodes::Continue: return LOCTEXT("HttpResponseCode_100", "Continue");
57 case EHttpResponseCodes::SwitchProtocol: return LOCTEXT("HttpResponseCode_101", "Switching Protocols");
58 case EHttpResponseCodes::Ok: return LOCTEXT("HttpResponseCode_200", "OK");
59 case EHttpResponseCodes::Created: return LOCTEXT("HttpResponseCode_201", "Created");
60 case EHttpResponseCodes::Accepted: return LOCTEXT("HttpResponseCode_202", "Accepted");
61 case EHttpResponseCodes::Partial: return LOCTEXT("HttpResponseCode_203", "Non-Authoritative Information");
62 case EHttpResponseCodes::NoContent: return LOCTEXT("HttpResponseCode_204", "No Content");
63 case EHttpResponseCodes::ResetContent: return LOCTEXT("HttpResponseCode_205", "Reset Content");
64 case EHttpResponseCodes::PartialContent: return LOCTEXT("HttpResponseCode_206", "Partial Content");
65
66 case EHttpResponseCodes::Ambiguous: return LOCTEXT("HttpResponseCode_300", "Multiple Choices");
67 case EHttpResponseCodes::Moved: return LOCTEXT("HttpResponseCode_301", "Moved Permanently");
68 case EHttpResponseCodes::Redirect: return LOCTEXT("HttpResponseCode_302", "Found/Moved temporarily");
69 case EHttpResponseCodes::RedirectMethod: return LOCTEXT("HttpResponseCode_303", "See Other");
70 case EHttpResponseCodes::NotModified: return LOCTEXT("HttpResponseCode_304", "Not Modified");
71 case EHttpResponseCodes::UseProxy: return LOCTEXT("HttpResponseCode_305", "Use Proxy");
72 case EHttpResponseCodes::RedirectKeepVerb: return LOCTEXT("HttpResponseCode_307", "Temporary Redirect");
73
74 case EHttpResponseCodes::BadRequest: return LOCTEXT("HttpResponseCode_400", "Bad Request");
75 case EHttpResponseCodes::Denied: return LOCTEXT("HttpResponseCode_401", "Unauthorized");
76 case EHttpResponseCodes::PaymentReq: return LOCTEXT("HttpResponseCode_402", "Payment Required");
77 case EHttpResponseCodes::Forbidden: return LOCTEXT("HttpResponseCode_403", "Forbidden");
78 case EHttpResponseCodes::NotFound: return LOCTEXT("HttpResponseCode_404", "Not Found");
79 case EHttpResponseCodes::BadMethod: return LOCTEXT("HttpResponseCode_405", "Method Not Allowed");
80 case EHttpResponseCodes::NoneAcceptable: return LOCTEXT("HttpResponseCode_406", "Not Acceptable");
81 case EHttpResponseCodes::ProxyAuthReq: return LOCTEXT("HttpResponseCode_407", "Proxy Authentication Required");
82 case EHttpResponseCodes::RequestTimeout: return LOCTEXT("HttpResponseCode_408", "Request Timeout");
83 case EHttpResponseCodes::Conflict: return LOCTEXT("HttpResponseCode_409", "Conflict");
84 case EHttpResponseCodes::Gone: return LOCTEXT("HttpResponseCode_410", "Gone");
85 case EHttpResponseCodes::LengthRequired: return LOCTEXT("HttpResponseCode_411", "Length Required");
86 case EHttpResponseCodes::PrecondFailed: return LOCTEXT("HttpResponseCode_412", "Precondition Failed");
87 case EHttpResponseCodes::RequestTooLarge: return LOCTEXT("HttpResponseCode_413", "Payload Too Large");
88 case EHttpResponseCodes::UriTooLong: return LOCTEXT("HttpResponseCode_414", "URI Too Long");
89 case EHttpResponseCodes::UnsupportedMedia: return LOCTEXT("HttpResponseCode_415", "Unsupported Media Type");
90 case EHttpResponseCodes::TooManyRequests: return LOCTEXT("HttpResponseCode_429", "Too Many Requests");
91 case EHttpResponseCodes::RetryWith: return LOCTEXT("HttpResponseCode_449", "Retry With");
92
93 case EHttpResponseCodes::ServerError: return LOCTEXT("HttpResponseCode_500", "Internal Server Error");
94 case EHttpResponseCodes::NotSupported: return LOCTEXT("HttpResponseCode_501", "Not Implemented");
95 case EHttpResponseCodes::BadGateway: return LOCTEXT("HttpResponseCode_502", "Bad Gateway");
96 case EHttpResponseCodes::ServiceUnavail: return LOCTEXT("HttpResponseCode_503", "Service Unavailable");
97 case EHttpResponseCodes::GatewayTimeout: return LOCTEXT("HttpResponseCode_504", "Gateway Timeout");
98 case EHttpResponseCodes::VersionNotSup: return LOCTEXT("HttpResponseCode_505", "HTTP Version Not Supported");
99
100 case EHttpResponseCodes::Unknown:
101 default:
102 return LOCTEXT("HttpResponseCode_0", "Unknown");
103 }
104 }
105}
106
111{
112public:
113
120 virtual int32 GetResponseCode() const = 0;
121
127 virtual FString GetContentAsString() const = 0;
128
136
140 virtual ~IHttpResponse() = default;
141};
142
143#undef LOCTEXT_NAMESPACE
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
#define LOCTEXT(InKey, InTextLiteral)
Definition Internationalization.h:295
Definition Text.h:385
Definition IHttpBase.h:90
Definition IHttpResponse.h:111
virtual int32 GetResponseCode() const =0
virtual ~IHttpResponse()=default
virtual FUtf8StringView GetContentAsUtf8StringView() const =0
virtual FString GetContentAsString() const =0
Definition IHttpResponse.h:11
Type
Definition IHttpResponse.h:18
FString ResponseCodeToString(Type ResponseCode)
Definition IHttpResponse.h:25
FString GetResponseCodeAsErrorCode(int32 StatusCode)
Definition IHttpResponse.h:43
bool IsOk(int32 StatusCode)
Definition IHttpResponse.h:38
FText GetDescription(EHttpResponseCodes::Type StatusCode)
Definition IHttpResponse.h:52