Skip to content

Commit f0bb18d

Browse files
authored
Use HTTP form data as JSArray (#12506)
* Use form data as JSArray * Change files
1 parent 63987c1 commit f0bb18d

File tree

2 files changed

+15
-10
lines changed

2 files changed

+15
-10
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"type": "prerelease",
3+
"comment": "Use form data as JSArray",
4+
"packageName": "react-native-windows",
5+
"email": "[email protected]",
6+
"dependentChangeType": "patch"
7+
}

vnext/Shared/Networking/WinRTHttpResource.cpp

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -202,29 +202,27 @@ IAsyncOperation<HttpRequestMessage> WinRTHttpResource::CreateRequest(
202202
content = HttpStreamContent{std::move(stream)};
203203
} else if (data.find("formData") != data.cend()) {
204204
winrt::Windows::Web::Http::HttpMultipartFormDataContent multiPartContent;
205-
auto &formData = data["formData"].AsObject();
205+
auto &formData = data["formData"].AsArray();
206206

207207
// #6046 - Overwriting WinRT's HttpMultipartFormDataContent implicit Content-Type clears the generated boundary
208208
contentType = nullptr;
209209

210210
for (auto &formDataPart : formData) {
211211
IHttpContent formContent{nullptr};
212-
auto &itr = formDataPart.second["string"];
213-
if (!formDataPart.second["string"].IsNull()) {
214-
formContent = HttpStringContent{to_hstring(formDataPart.second["string"].AsString())};
215-
} else if (!formDataPart.second["uri"].IsNull()) {
216-
auto filePath = to_hstring(formDataPart.second["uri"].AsString());
212+
auto &formDataPartObj = formDataPart.AsObject();
213+
if (!formDataPartObj["string"].IsNull()) {
214+
formContent = HttpStringContent{to_hstring(formDataPartObj["string"].AsString())};
215+
} else if (!formDataPartObj["uri"].IsNull()) {
216+
auto filePath = to_hstring(formDataPartObj["uri"].AsString());
217217
auto file = co_await StorageFile::GetFileFromPathAsync(filePath);
218218
auto stream = co_await file.OpenReadAsync();
219219
formContent = HttpStreamContent{stream};
220220
}
221-
222221
if (formContent) {
223-
AttachMultipartHeaders(formContent, formDataPart.second["headers"].AsObject());
224-
multiPartContent.Add(formContent, to_hstring(formDataPart.second["fieldName"].AsString()));
222+
AttachMultipartHeaders(formContent, formDataPartObj["headers"].AsObject());
223+
multiPartContent.Add(formContent, to_hstring(formDataPartObj["fieldName"].AsString()));
225224
}
226225
} // foreach form data part
227-
228226
content = multiPartContent;
229227
}
230228
}

0 commit comments

Comments
 (0)