Skip to content

Commit c17f0df

Browse files
committed
Return back URL encoded form
1 parent bc90167 commit c17f0df

File tree

1 file changed

+17
-9
lines changed

1 file changed

+17
-9
lines changed

src/RestSharp/Request/RequestContent.cs

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
using System.Runtime.Serialization;
1717
using RestSharp.Extensions;
1818
using static RestSharp.KnownHeaders;
19+
// ReSharper disable SuggestBaseTypeForParameter
1920

2021
namespace RestSharp;
2122

@@ -121,17 +122,24 @@ void AddBody(bool hasPostParameters) {
121122
void AddPostParameters(ParametersCollection? postParameters) {
122123
if (postParameters.IsEmpty()) return;
123124

124-
var mpContent = Content as MultipartFormDataContent ?? new MultipartFormDataContent();
125-
126-
// we got the multipart form already instantiated, just add parameters to it
127-
foreach (var postParameter in postParameters!) {
128-
mpContent.Add(
129-
new StringContent(postParameter.Value!.ToString()!, _client.Options.Encoding, postParameter.ContentType),
130-
postParameter.Name!
125+
if (Content is MultipartFormDataContent mpContent) {
126+
// we got the multipart form already instantiated, just add parameters to it
127+
foreach (var postParameter in postParameters!) {
128+
mpContent.Add(
129+
new StringContent(postParameter.Value!.ToString()!, _client.Options.Encoding, postParameter.ContentType),
130+
postParameter.Name!
131+
);
132+
}
133+
}
134+
else {
135+
// we should not have anything else except the parameters, so we send them as form URL encoded
136+
var formContent = new FormUrlEncodedContent(
137+
_request.Parameters
138+
.Where(x => x.Type == ParameterType.GetOrPost)
139+
.Select(x => new KeyValuePair<string, string>(x.Name!, x.Value!.ToString()!))!
131140
);
141+
Content = formContent;
132142
}
133-
134-
Content = mpContent;
135143
}
136144

137145
void AddHeaders() {

0 commit comments

Comments
 (0)