diff --git a/src/RestSharp/Parameters/Parameter.cs b/src/RestSharp/Parameters/Parameter.cs index fe260f3c6..0c5928d32 100644 --- a/src/RestSharp/Parameters/Parameter.cs +++ b/src/RestSharp/Parameters/Parameter.cs @@ -34,7 +34,7 @@ public static Parameter CreateParameter(string? name, object? value, ParameterTy ParameterType.GetOrPost => new GetOrPostParameter(name!, value?.ToString(), encode), ParameterType.UrlSegment => new UrlSegmentParameter(name!, value?.ToString()!, encode), ParameterType.HttpHeader => new HeaderParameter(name, value?.ToString()), - ParameterType.RequestBody => new BodyParameter(name, value!, Serializers.ContentType.Plain), + ParameterType.RequestBody => new BodyParameter("", value!, string.IsNullOrEmpty(name) ? Serializers.ContentType.Plain : name!), ParameterType.QueryString => new QueryParameter(name!, value?.ToString(), encode), _ => throw new ArgumentOutOfRangeException(nameof(type), type, null) }; diff --git a/test/RestSharp.Tests.Integrated/MultipartFormDataTests.cs b/test/RestSharp.Tests.Integrated/MultipartFormDataTests.cs index 4ea0e3c8b..305a2a9b6 100644 --- a/test/RestSharp.Tests.Integrated/MultipartFormDataTests.cs +++ b/test/RestSharp.Tests.Integrated/MultipartFormDataTests.cs @@ -69,7 +69,7 @@ public async Task AlwaysMultipartFormData_WithParameter_Execute() { Method = Method.Post }; - request.AddParameter("title", "test", ParameterType.RequestBody); + request.AddParameter("", "test", ParameterType.RequestBody); var response = await _client.ExecuteAsync(request); diff --git a/test/RestSharp.Tests/RestContentTests.cs b/test/RestSharp.Tests/RestContentTests.cs index 2e7744988..5ee6ae3aa 100644 --- a/test/RestSharp.Tests/RestContentTests.cs +++ b/test/RestSharp.Tests/RestContentTests.cs @@ -12,4 +12,17 @@ public void RestContent_CaseInsensitiveHeaders() { httpContent.Headers.ContentType!.MediaType.Should().Be(myContentType); } + + [Fact] + public void RestContent_supports_manual_json_body() { + const string myContentType = "application/json"; + const string myJsonString = "[]"; + + var request = new RestRequest("resource").AddParameter(myContentType, myJsonString, ParameterType.RequestBody); + var content = new RequestContent(new RestClient(), request); + + var httpContent = content.BuildContent(); + + httpContent.Headers.ContentType!.MediaType.Should().Be(myContentType); + } }