Skip to content

Commit 0c3ea2a

Browse files
committed
Fixes #1682
1 parent 584fe59 commit 0c3ea2a

File tree

11 files changed

+23
-23
lines changed

11 files changed

+23
-23
lines changed

src/RestSharp/Ensure.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public static string NotEmpty(string? value, string name)
2222
=> string.IsNullOrWhiteSpace(value) ? throw new ArgumentNullException(name) : value!;
2323

2424
public static string NotEmptyString(object? value, string name) {
25-
var s = value as string;
25+
var s = value as string ?? value?.ToString();
2626
return string.IsNullOrWhiteSpace(s) ? throw new ArgumentNullException(name) : s!;
2727
}
2828
}

src/RestSharp/Parameters/GetOrPostParameter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,5 @@
1616
namespace RestSharp;
1717

1818
public record GetOrPostParameter : NamedParameter {
19-
public GetOrPostParameter(string name, object? value, bool encode = true) : base(name, value, ParameterType.GetOrPost, encode) { }
19+
public GetOrPostParameter(string name, string? value, bool encode = true) : base(name, value, ParameterType.GetOrPost, encode) { }
2020
}

src/RestSharp/Parameters/HeaderParameter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,5 @@
1616
namespace RestSharp;
1717

1818
public record HeaderParameter : Parameter {
19-
public HeaderParameter(string? name, object? value) : base(name, value, ParameterType.HttpHeader, false) { }
19+
public HeaderParameter(string? name, string? value) : base(name, value, ParameterType.HttpHeader, false) { }
2020
}

src/RestSharp/Parameters/Parameter.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,13 @@ public abstract record Parameter(string? Name, object? Value, ParameterType Type
2929
/// <returns>String</returns>
3030
public override string ToString() => $"{Name}={Value}";
3131

32-
public static Parameter CreateParameter(string? name, object value, ParameterType type, bool encode = true)
32+
public static Parameter CreateParameter(string? name, object? value, ParameterType type, bool encode = true)
3333
=> type switch {
34-
ParameterType.GetOrPost => new GetOrPostParameter(name!, value, encode),
35-
ParameterType.UrlSegment => new UrlSegmentParameter(name!, value, encode),
36-
ParameterType.HttpHeader => new HeaderParameter(name, value),
37-
ParameterType.RequestBody => new BodyParameter(name, value, Serializers.ContentType.Plain),
38-
ParameterType.QueryString => new QueryParameter(name!, value, encode),
34+
ParameterType.GetOrPost => new GetOrPostParameter(name!, value?.ToString(), encode),
35+
ParameterType.UrlSegment => new UrlSegmentParameter(name!, value?.ToString()!, encode),
36+
ParameterType.HttpHeader => new HeaderParameter(name, value?.ToString()),
37+
ParameterType.RequestBody => new BodyParameter(name, value!, Serializers.ContentType.Plain),
38+
ParameterType.QueryString => new QueryParameter(name!, value?.ToString(), encode),
3939
_ => throw new ArgumentOutOfRangeException(nameof(type), type, null)
4040
};
4141
}

src/RestSharp/Parameters/QueryParameter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,5 @@
1616
namespace RestSharp;
1717

1818
public record QueryParameter : NamedParameter {
19-
public QueryParameter(string name, object? value, bool encode = true) : base(name, value, ParameterType.QueryString, encode) { }
19+
public QueryParameter(string name, string? value, bool encode = true) : base(name, value, ParameterType.QueryString, encode) { }
2020
}

src/RestSharp/Parameters/UrlSegmentParameter.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,6 @@
1616
namespace RestSharp;
1717

1818
public record UrlSegmentParameter : NamedParameter {
19-
public UrlSegmentParameter(string name, object value, bool encode = true)
20-
: base(name, Ensure.NotEmptyString(value, nameof(value)).Replace("%2F", "/").Replace("%2f", "/"), ParameterType.UrlSegment, encode) { }
19+
public UrlSegmentParameter(string name, string value, bool encode = true)
20+
: base(name, Ensure.NotEmpty(value, nameof(value)).Replace("%2F", "/").Replace("%2f", "/"), ParameterType.UrlSegment, encode) { }
2121
}

src/RestSharp/Request/RestRequestExtensions.cs

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ public static class RestRequestExtensions {
3030
/// <param name="value">Value of the parameter</param>
3131
/// <param name="encode">Encode the value or not, default true</param>
3232
/// <returns>This request</returns>
33-
public static RestRequest AddParameter(this RestRequest request, string name, object value, bool encode = true)
34-
=> request.AddParameter(new GetOrPostParameter(name, value, encode));
33+
public static RestRequest AddParameter(this RestRequest request, string name, object? value, bool encode = true)
34+
=> request.AddParameter(new GetOrPostParameter(name, value?.ToString(), encode));
3535

3636
public static RestRequest AddParameter(this RestRequest request, string? name, object value, ParameterType type, bool encode = true)
3737
=> request.AddParameter(Parameter.CreateParameter(name, value, type, encode));
@@ -52,8 +52,8 @@ public static RestRequest AddOrUpdateParameters(this RestRequest request, IEnume
5252
return request;
5353
}
5454

55-
public static RestRequest AddOrUpdateParameter(this RestRequest request, string name, object value)
56-
=> request.AddOrUpdateParameter(new GetOrPostParameter(name, value));
55+
public static RestRequest AddOrUpdateParameter(this RestRequest request, string name, object? value)
56+
=> request.AddOrUpdateParameter(new GetOrPostParameter(name, value?.ToString()));
5757

5858
public static RestRequest AddOrUpdateParameter(this RestRequest request, string name, object value, ParameterType type, bool encode = true)
5959
=> request.AddOrUpdateParameter(Parameter.CreateParameter(name, value, type, encode));
@@ -94,9 +94,6 @@ public static RestRequest AddUrlSegment(this RestRequest request, string name, s
9494
public static RestRequest AddQueryParameter(this RestRequest request, string name, string value, bool encode = true)
9595
=> request.AddParameter(new QueryParameter(name, value, encode));
9696

97-
public static RestRequest AddUrlSegment(this RestRequest request, string name, object value, bool encode = true)
98-
=> request.AddParameter(new UrlSegmentParameter(name, value, encode));
99-
10097
/// <summary>
10198
/// Adds a file parameter to the request body. The file will be read from disk as a stream.
10299
/// </summary>

src/RestSharp/RestClientExtensions.Json.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public static partial class RestClientExtensions {
4848
resource = resource.Replace(param, value.ToString());
4949
}
5050
else {
51-
query.Add(new QueryParameter(name, value));
51+
query.Add(new QueryParameter(name, value?.ToString()));
5252
}
5353
}
5454

src/RestSharp/RestClientExtensions.Params.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public static partial class RestClientExtensions {
2424
/// <param name="name">Name of the parameter</param>
2525
/// <param name="value">Value of the parameter</param>
2626
/// <returns>This request</returns>
27-
public static RestClient AddDefaultParameter(this RestClient client, string name, object value)
27+
public static RestClient AddDefaultParameter(this RestClient client, string name, string value)
2828
=> client.AddDefaultParameter(new GetOrPostParameter(name, value));
2929

3030
/// <summary>

test/RestSharp.IntegrationTests/AsyncTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public async Task Can_Perform_ExecuteGetAsync_With_Response_Type() {
3737
var request = new RestRequest("success");
3838
var response = await _client.ExecuteAsync<Response>(request);
3939

40-
response.StatusCode.Should().Be(200);
40+
response.StatusCode.Should().Be(HttpStatusCode.OK);
4141
response.Data!.Message.Should().Be("Works!");
4242
}
4343

0 commit comments

Comments
 (0)