Skip to content

Commit 1fb6203

Browse files
committed
Fix pipe encoding issue
1 parent 87cbd07 commit 1fb6203

File tree

5 files changed

+5
-25
lines changed

5 files changed

+5
-25
lines changed

.DS_Store

-8 KB
Binary file not shown.

src/RestSharp/BuildUriExtensions.cs

Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,7 @@ public static class BuildUriExtensions {
2323
/// </summary>
2424
/// <param name="request">Request instance</param>
2525
/// <returns></returns>
26-
public Uri BuildUri(RestRequest request) {
27-
DoBuildUriValidations(client, request);
28-
29-
var (uri, resource) = client.Options.BaseUrl.GetUrlSegmentParamsValues(
30-
request.Resource,
31-
client.Options.Encode,
32-
request.Parameters,
33-
client.DefaultParameters
34-
);
35-
var mergedUri = uri.MergeBaseUrlAndResource(resource);
36-
var query = client.GetRequestQuery(request);
37-
return mergedUri.AddQueryString(query);
38-
}
26+
public Uri BuildUri(RestRequest request) => new(client.BuildUriString(request));
3927

4028
/// <summary>
4129
/// Builds the URI string for the request. This method returns a string instead of a Uri object
@@ -45,15 +33,7 @@ public Uri BuildUri(RestRequest request) {
4533
/// <returns></returns>
4634
[PublicAPI]
4735
public string BuildUriString(RestRequest request) {
48-
DoBuildUriValidations(client, request);
49-
50-
var (uri, resource) = client.Options.BaseUrl.GetUrlSegmentParamsValues(
51-
request.Resource,
52-
client.Options.Encode,
53-
request.Parameters,
54-
client.DefaultParameters
55-
);
56-
var mergedUri = uri.MergeBaseUrlAndResource(resource);
36+
var mergedUri = client.BuildUriWithoutQueryParameters(request);
5737
var query = client.GetRequestQuery(request);
5838

5939
if (query == null) return mergedUri.AbsoluteUri;

src/RestSharp/RestClient.Async.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,8 @@ async Task<HttpResponse> ExecuteRequestAsync(RestRequest request, CancellationTo
111111
using var requestContent = new RequestContent(this, request);
112112

113113
var httpMethod = AsHttpMethod(request.Method);
114-
var url = this.BuildUri(request);
115114
var urlString = this.BuildUriString(request);
115+
var url = new Uri(urlString);
116116

117117
using var message = new HttpRequestMessage(httpMethod, urlString);
118118
message.Content = requestContent.BuildContent();

test/.DS_Store

-6 KB
Binary file not shown.

test/RestSharp.Tests/UrlBuilderTests.Get.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,11 @@ public void GET_with_empty_request_and_query_parameters_without_encoding() {
6464
public void GET_with_pipe_character_in_query_parameter_without_encoding() {
6565
var request = new RestRequest();
6666
request.AddQueryParameter("ids", "in:001|116", false);
67-
var expected = new Uri($"{Base}/{Resource}?ids=in:001|116");
67+
const string expected = $"{Base}/{Resource}?ids=in:001|116";
6868

6969
using var client = new RestClient($"{Base}/{Resource}");
7070

71-
var output = client.BuildUri(request);
71+
var output = client.BuildUriString(request);
7272
Assert.Equal(expected, output);
7373
}
7474

0 commit comments

Comments
 (0)