Files
UnrealEngine/Engine/Source/Runtime/Online/HTTPServer/Public/HttpServerRequest.h
2025-05-18 13:04:45 +08:00

56 lines
1.2 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "HttpPath.h"
#include "HttpServerHttpVersion.h"
class FInternetAddr;
enum class EHttpServerRequestVerbs : uint16
{
VERB_NONE = 0,
VERB_GET = 1 << 0,
VERB_POST = 1 << 1,
VERB_PUT = 1 << 2,
VERB_PATCH = 1 << 3,
VERB_DELETE = 1 << 4,
VERB_OPTIONS = 1 << 5
};
ENUM_CLASS_FLAGS(EHttpServerRequestVerbs);
struct FHttpServerRequest
{
public:
/** Constructor */
FHttpServerRequest() { };
/** The IP address of the peer that initiated the request. */
TSharedPtr<FInternetAddr> PeerAddress;
/** The handler-route-relative HTTP path */
FHttpPath RelativePath;
/** The HTTP-compliant verb */
EHttpServerRequestVerbs Verb = EHttpServerRequestVerbs::VERB_NONE;
/** The request HTTP protocol version */
HttpVersion::EHttpServerHttpVersion HttpVersion = HttpVersion::EHttpServerHttpVersion::HTTP_VERSION_1_1;
/** The HTTP headers */
TMap<FString, TArray<FString>> Headers;
/** The query parameters */
TMap<FString, FString> QueryParams;
/** The path parameters */
TMap<FString, FString> PathParams;
/** The raw body contents */
TArray<uint8> Body;
};