Skip to content

Commit 9ee6d0e

Browse files
committed
Merge github.com:nickvane/RestSharp
2 parents 19facb8 + 713935b commit 9ee6d0e

File tree

3 files changed

+22
-1
lines changed

3 files changed

+22
-1
lines changed

RestSharp/RestClient.Sync.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,6 @@ private IRestResponse Execute(IRestRequest request, string httpMethod, Func<IHtt
7979
return response;
8080
}
8181

82-
8382
private static HttpResponse DoExecuteAsGet(IHttp http, string method)
8483
{
8584
return http.AsGet(method);

RestSharp/RestClient.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,10 @@ public void AddHandler(string contentType, IDeserializer deserializer)
9090
if (contentType != "*")
9191
{
9292
AcceptTypes.Add(contentType);
93+
// add Accept header based on registered deserializers
94+
var accepts = string.Join(", ", AcceptTypes.ToArray());
95+
this.RemoveDefaultParameter("Accept");
96+
this.AddDefaultParameter("Accept", accepts, ParameterType.HttpHeader);
9397
}
9498
}
9599

@@ -101,6 +105,7 @@ public void RemoveHandler(string contentType)
101105
{
102106
ContentHandlers.Remove(contentType);
103107
AcceptTypes.Remove(contentType);
108+
this.RemoveDefaultParameter("Accept");
104109
}
105110

106111
/// <summary>
@@ -110,6 +115,7 @@ public void ClearHandlers()
110115
{
111116
ContentHandlers.Clear();
112117
AcceptTypes.Clear();
118+
this.RemoveDefaultParameter("Accept");
113119
}
114120

115121
/// <summary>

RestSharp/RestClientExtensions.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using System.Linq;
23

34
namespace RestSharp
45
{
@@ -213,6 +214,21 @@ public static void AddDefaultParameter(this IRestClient restClient, Parameter p)
213214
restClient.DefaultParameters.Add(p);
214215
}
215216

217+
/// <summary>
218+
/// Removes a parameter from the default parameters that are used on every request made with this client instance
219+
/// </summary>
220+
/// <param name="restClient">The IRestClient instance</param>
221+
/// <param name="name">The name of the parameter that needs to be removed</param>
222+
/// <returns></returns>
223+
public static void RemoveDefaultParameter(this IRestClient restClient, string name)
224+
{
225+
var parameter = restClient.DefaultParameters.SingleOrDefault(p => p.Name.Equals(name, StringComparison.OrdinalIgnoreCase));
226+
if (parameter != null)
227+
{
228+
restClient.DefaultParameters.Remove(parameter);
229+
}
230+
}
231+
216232
/// <summary>
217233
/// Adds a HTTP parameter (QueryString for GET, DELETE, OPTIONS and HEAD; Encoded form for POST and PUT)
218234
/// Used on every request made by this client instance

0 commit comments

Comments
 (0)