Skip to content

Commit

Permalink
Fix for Issue restsharp#368
Browse files Browse the repository at this point in the history
  • Loading branch information
Nick Van Eeckhout authored and unknown committed Apr 9, 2013
1 parent 0dd78f5 commit 713935b
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 9 deletions.
4 changes: 0 additions & 4 deletions RestSharp/RestClient.Async.cs
Expand Up @@ -73,10 +73,6 @@ private RestRequestAsyncHandle ExecuteAsync(IRestRequest request, Action<IRestRe
var http = HttpFactory.Create();
AuthenticateIfNeeded(this, request);

// add Accept header based on registered deserializers
var accepts = string.Join(", ", AcceptTypes.ToArray());
this.AddDefaultParameter("Accept", accepts, ParameterType.HttpHeader);

ConfigureHttp(request, http);

var asyncHandle = new RestRequestAsyncHandle();
Expand Down
5 changes: 0 additions & 5 deletions RestSharp/RestClient.Sync.cs
Expand Up @@ -62,10 +62,6 @@ private IRestResponse Execute(IRestRequest request, string httpMethod, Func<IHtt
{
AuthenticateIfNeeded(this, request);

// add Accept header based on registered deserializers
var accepts = string.Join(", ", AcceptTypes.ToArray());
this.AddDefaultParameter("Accept", accepts, ParameterType.HttpHeader);

IRestResponse response = new RestResponse();
try
{
Expand All @@ -89,7 +85,6 @@ private IRestResponse Execute(IRestRequest request, string httpMethod, Func<IHtt
return response;
}


private static HttpResponse DoExecuteAsGet(IHttp http, string method)
{
return http.AsGet(method);
Expand Down
6 changes: 6 additions & 0 deletions RestSharp/RestClient.cs
Expand Up @@ -90,6 +90,10 @@ public void AddHandler(string contentType, IDeserializer deserializer)
if (contentType != "*")
{
AcceptTypes.Add(contentType);
// add Accept header based on registered deserializers
var accepts = string.Join(", ", AcceptTypes.ToArray());
this.RemoveDefaultParameter("Accept");
this.AddDefaultParameter("Accept", accepts, ParameterType.HttpHeader);
}
}

Expand All @@ -101,6 +105,7 @@ public void RemoveHandler(string contentType)
{
ContentHandlers.Remove(contentType);
AcceptTypes.Remove(contentType);
this.RemoveDefaultParameter("Accept");
}

/// <summary>
Expand All @@ -110,6 +115,7 @@ public void ClearHandlers()
{
ContentHandlers.Clear();
AcceptTypes.Clear();
this.RemoveDefaultParameter("Accept");
}

/// <summary>
Expand Down
16 changes: 16 additions & 0 deletions RestSharp/RestClientExtensions.cs
@@ -1,4 +1,5 @@
using System;
using System.Linq;

namespace RestSharp
{
Expand Down Expand Up @@ -213,6 +214,21 @@ public static void AddDefaultParameter(this IRestClient restClient, Parameter p)
restClient.DefaultParameters.Add(p);
}

/// <summary>
/// Removes a parameter from the default parameters that are used on every request made with this client instance
/// </summary>
/// <param name="restClient">The IRestClient instance</param>
/// <param name="name">The name of the parameter that needs to be removed</param>
/// <returns></returns>
public static void RemoveDefaultParameter(this IRestClient restClient, string name)
{
var parameter = restClient.DefaultParameters.SingleOrDefault(p => p.Name.Equals(name, StringComparison.OrdinalIgnoreCase));
if (parameter != null)
{
restClient.DefaultParameters.Remove(parameter);
}
}

/// <summary>
/// Adds a HTTP parameter (QueryString for GET, DELETE, OPTIONS and HEAD; Encoded form for POST and PUT)
/// Used on every request made by this client instance
Expand Down

0 comments on commit 713935b

Please sign in to comment.