Skip to content

Commit 7d10290

Browse files
committed
Fix for manual JSON body content parameter. #1816
1 parent 31a9019 commit 7d10290

File tree

3 files changed

+15
-2
lines changed

3 files changed

+15
-2
lines changed

src/RestSharp/Parameters/Parameter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public static Parameter CreateParameter(string? name, object? value, ParameterTy
3434
ParameterType.GetOrPost => new GetOrPostParameter(name!, value?.ToString(), encode),
3535
ParameterType.UrlSegment => new UrlSegmentParameter(name!, value?.ToString()!, encode),
3636
ParameterType.HttpHeader => new HeaderParameter(name, value?.ToString()),
37-
ParameterType.RequestBody => new BodyParameter(name, value!, Serializers.ContentType.Plain),
37+
ParameterType.RequestBody => new BodyParameter("", value!, string.IsNullOrEmpty(name) ? Serializers.ContentType.Plain : name!),
3838
ParameterType.QueryString => new QueryParameter(name!, value?.ToString(), encode),
3939
_ => throw new ArgumentOutOfRangeException(nameof(type), type, null)
4040
};

test/RestSharp.Tests.Integrated/MultipartFormDataTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ public async Task AlwaysMultipartFormData_WithParameter_Execute() {
6969
Method = Method.Post
7070
};
7171

72-
request.AddParameter("title", "test", ParameterType.RequestBody);
72+
request.AddParameter("", "test", ParameterType.RequestBody);
7373

7474
var response = await _client.ExecuteAsync(request);
7575

test/RestSharp.Tests/RestContentTests.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,17 @@ public void RestContent_CaseInsensitiveHeaders() {
1212

1313
httpContent.Headers.ContentType!.MediaType.Should().Be(myContentType);
1414
}
15+
16+
[Fact]
17+
public void RestContent_supports_manual_json_body() {
18+
const string myContentType = "application/json";
19+
const string myJsonString = "[]";
20+
21+
var request = new RestRequest("resource").AddParameter(myContentType, myJsonString, ParameterType.RequestBody);
22+
var content = new RequestContent(new RestClient(), request);
23+
24+
var httpContent = content.BuildContent();
25+
26+
httpContent.Headers.ContentType!.MediaType.Should().Be(myContentType);
27+
}
1528
}

0 commit comments

Comments
 (0)