KLingo Project Documentation 1.0.0
Unreal Engine 5.6 C++ Project Documentation
로딩중...
검색중...
일치하는것 없음
FHttpMultipartFormData.h
이 파일의 문서화 페이지로 가기
1// Copyright (c) 2025 Doppleddiggong. All rights reserved. Unauthorized copying, modification, or distribution of this file, via any medium is strictly prohibited. Proprietary and confidential.
2
3#pragma once
4
9#include "CoreMinimal.h"
10#include "Interfaces/IHttpRequest.h"
11
13enum class EFormDataType : uint8
14{
20};
21
28{
29public:
33
37 void AddText(const FString& FieldName, const FString& Value);
38
40 FORCEINLINE void AddStringField(const FString& FieldName, const FString& Value)
41 {
42 AddText(FieldName, Value);
43 }
44
50 bool AddFile(const FString& FieldName, const FString& FilePath, const FString& MimeType = TEXT(""));
51
53 void Reset();
54
57 void SetupHttpRequest(const TSharedRef<IHttpRequest, ESPMode::ThreadSafe>& Request);
58
60 const FString& GetBoundary() const { return Boundary; }
61
63 const TArray<uint8>& GetBuiltBody() const { return BuiltBody; }
64
65private:
66 struct FTextPart
67 {
68 FString Name;
69 FString Value;
70 };
71
72 struct FFilePart
73 {
74 FString Name;
75 FString FileName;
76 FString MimeType;
77 TArray<uint8> Data;
78 };
79
80private:
82 static FString DetectMimeFromExtension(const FString& FileName);
83
85 static void AppendUtf8(TArray<uint8>& Dest, const FString& Str);
86
88 void BuildBody();
89
90private:
92 FString Boundary;
93 TArray<FTextPart> TextParts;
94 TArray<FFilePart> FileParts;
95 TArray<uint8> BuiltBody;
96};
EFormDataType
HTTP 폼 데이터 전송 방식을 정의합니다.
@ FormUrlEncoded
application/x-www-form-urlencoded (OAuth2 등)
@ Multipart
multipart/form-data (파일 업로드용)
언리얼 엔진에 기본 제공되지 않는 multipart/form-data 빌더의 경량 구현입니다.
TArray< FTextPart > TextParts
static void AppendUtf8(TArray< uint8 > &Dest, const FString &Str)
문자열을 UTF-8로 변환해 버퍼에 추가합니다.
void BuildBody()
등록된 파트를 기반으로 HTTP 본문을 구성합니다.
void AddText(const FString &FieldName, const FString &Value)
간단한 텍스트 필드를 추가합니다.
FORCEINLINE void AddStringField(const FString &FieldName, const FString &Value)
문자열 필드를 추가하는 편의 래퍼입니다.
static FString DetectMimeFromExtension(const FString &FileName)
파일 확장자를 기반으로 MIME 타입을 추론합니다.
TArray< FFilePart > FileParts
const TArray< uint8 > & GetBuiltBody() const
직렬화된 multipart 본문 데이터입니다.
void Reset()
모든 파트를 제거하고 경계를 재생성합니다.
const FString & GetBoundary() const
현재 사용 중인 경계 문자열입니다.
void SetupHttpRequest(const TSharedRef< IHttpRequest, ESPMode::ThreadSafe > &Request)
HTTP 요청에 Content-Type 헤더와 본문을 설정합니다.
bool AddFile(const FString &FieldName, const FString &FilePath, const FString &MimeType=TEXT(""))
파일 데이터를 multipart 본문에 추가합니다.