Skip to content

Commit cb4f62a

Browse files
authored
Override ContentType header when sending multipart/form-data type request (#14925)
1 parent 7e1eb9b commit cb4f62a

File tree

3 files changed

+4
-5
lines changed

3 files changed

+4
-5
lines changed

sdk/core/Azure.Core/src/Shared/Multipart/MultipartContent.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,8 @@ private static string GetDefaultBoundary()
112112
/// <param name="request">The request.</param>
113113
public void ApplyToRequest(Request request)
114114
{
115-
request.Headers.Add(HttpHeader.Names.ContentType, $"multipart/{_subtype}; boundary={_boundary}");
115+
request.Headers.SetValue(HttpHeader.Names.ContentType, $"multipart/{_subtype}; boundary={_boundary}");
116+
request.Content = this;
116117
}
117118

118119
/// <summary>

sdk/core/Azure.Core/tests/HttpPipelineFunctionalTests.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,6 @@ public async Task SendMultipartformData()
404404
request.Uri.Reset(testServer.Address);
405405

406406
var content = new MultipartFormDataContent("test_boundary");
407-
content.ApplyToRequest(request);
408407
content.Add(RequestContent.Create(Encoding.UTF8.GetBytes("John")), "FirstName", "file_name.txt", new Dictionary<string, string>
409408
{
410409
{ "Content-Type", "text/plain; charset=utf-8" }
@@ -414,7 +413,7 @@ public async Task SendMultipartformData()
414413
{ "Content-Type", "text/plain; charset=utf-8" }
415414
});
416415

417-
request.Content = content;
416+
content.ApplyToRequest(request);
418417

419418
using Response response = await ExecuteRequest(request, httpPipeline);
420419
Assert.AreEqual(response.Status, 200);

sdk/core/Azure.Core/tests/MultipartTests.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,6 @@ public async Task SendMultipartData()
184184

185185
Guid batchGuid = Guid.NewGuid();
186186
var content = new MultipartContent(Mixed, $"batch_{batchGuid}");
187-
content.ApplyToRequest(request);
188187

189188
Guid changesetGuid = Guid.NewGuid();
190189
var changeset = new MultipartContent(Mixed, $"changeset_{changesetGuid}");
@@ -228,7 +227,7 @@ public async Task SendMultipartData()
228227
patchReq.Content = RequestContent.Create(Encoding.UTF8.GetBytes(patchBody));
229228
changeset.Add(new RequestRequestContent(patchReq), new Dictionary<string, string> { { HttpHeader.Names.ContentType, "application/http" }, { cteHeaderName, Binary } });
230229

231-
request.Content = content;
230+
content.ApplyToRequest(request);
232231
var memStream = new MemoryStream();
233232
await content.WriteToAsync(memStream, default);
234233
memStream.Position = 0;

0 commit comments

Comments
 (0)