大部分HTTP库都是支持直接设置多表单字段的,但UE4的HttpRequest比较惨,只能用SetContent设置整个的TArray<uint8>作为请求体,所以想要传多表单就要自己拼。
首先设置Header,Content-Type设置为多表单,并设置boundary:
auto HttpRequest = FHttpModule::Get().CreateRequest();
HttpRequest->SetHeader("Content-Type", TEXT("multipart/form-data; boundary=yourboundary"));
HttpRequest->SetURL(yourUrl);
HttpRequest->SetVerb("POST");
boundary想设什么都行,但要和后面用的统一。
然后拼请求体的数据字段部分:
FString RequestBody;
FString Boundary = TEXT("--yourboundary\r\nContent-Disposition: form-data; name=");
//拼入单个属性
FString Field = Boundary + TEXT("\"") + Key + TEXT("\"\r\n\r\n") + Value + TEXT("\r\n");
RequestBody += Field;
这里需要注意,分隔两个属性的boundary行要比Header里设置的boundary前面多两个横杠
然后拼入文件:
RequestBody += TEXT("--yourboundary\r\nContent-Disposition: form-data; name=\"file\"; "); //分隔行和前缀
RequestBody += TEXT("filename=\"") + FileNam

本文详细介绍了如何在UnrealEngine4(UE4)中使用HttpRequest进行HTTPPOST请求,处理多表单字段,包括设置Content-Type,boundary,以及拼接字符串和文件数据的过程。
最低0.47元/天 解锁文章
2万+





