Skip to content

Commit 66dd71d

Browse files
committed
Merge branch 'extension-methods' of git://github.com/Haacked/RestSharp
Conflicts: RestSharp/RestClientExtensions.cs RestSharp/RestSharp.csproj
2 parents fb0b30d + d70f9c9 commit 66dd71d

File tree

4 files changed

+76
-72
lines changed

4 files changed

+76
-72
lines changed

RestSharp/RestClient.Async.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public virtual RestRequestAsyncHandle ExecuteAsync(IRestRequest request, Action<
3737

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

4242
ConfigureHttp(request, http);
4343

RestSharp/RestClient.Sync.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public virtual IRestResponse Execute(IRestRequest request)
3939

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

4444
IRestResponse response = new RestResponse();
4545
try

RestSharp/RestClient.cs

Lines changed: 2 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,13 @@
1616

1717
using System;
1818
using System.Collections.Generic;
19-
using System.IO;
2019
using System.Linq;
2120
using System.Net;
22-
using System.Xml;
23-
using System.Xml.Linq;
21+
using System.Reflection;
2422
using System.Security.Cryptography.X509Certificates;
23+
using System.Text;
2524
using RestSharp.Deserializers;
2625
using RestSharp.Extensions;
27-
using System.Text;
28-
using System.Reflection;
2926

3027
namespace RestSharp
3128
{
@@ -82,71 +79,6 @@ public RestClient(string baseUrl)
8279
/// </summary>
8380
public IList<Parameter> DefaultParameters { get; private set; }
8481

85-
/// <summary>
86-
/// Add a parameter to use on every request made with this client instance
87-
/// </summary>
88-
/// <param name="p">Parameter to add</param>
89-
/// <returns></returns>
90-
public void AddDefaultParameter(Parameter p)
91-
{
92-
if (p.Type == ParameterType.RequestBody)
93-
{
94-
throw new NotSupportedException("Cannot set request body from default headers. Use Request.AddBody() instead.");
95-
}
96-
97-
DefaultParameters.Add(p);
98-
}
99-
100-
/// <summary>
101-
/// Adds a HTTP parameter (QueryString for GET, DELETE, OPTIONS and HEAD; Encoded form for POST and PUT)
102-
/// Used on every request made by this client instance
103-
/// </summary>
104-
/// <param name="name">Name of the parameter</param>
105-
/// <param name="value">Value of the parameter</param>
106-
/// <returns>This request</returns>
107-
public void AddDefaultParameter(string name, object value)
108-
{
109-
AddDefaultParameter(new Parameter { Name = name, Value = value, Type = ParameterType.GetOrPost });
110-
}
111-
112-
/// <summary>
113-
/// Adds a parameter to the request. There are four types of parameters:
114-
/// - GetOrPost: Either a QueryString value or encoded form value based on method
115-
/// - HttpHeader: Adds the name/value pair to the HTTP request's Headers collection
116-
/// - UrlSegment: Inserted into URL if there is a matching url token e.g. {AccountId}
117-
/// - RequestBody: Used by AddBody() (not recommended to use directly)
118-
/// </summary>
119-
/// <param name="name">Name of the parameter</param>
120-
/// <param name="value">Value of the parameter</param>
121-
/// <param name="type">The type of parameter to add</param>
122-
/// <returns>This request</returns>
123-
public void AddDefaultParameter(string name, object value, ParameterType type)
124-
{
125-
AddDefaultParameter(new Parameter { Name = name, Value = value, Type = type });
126-
}
127-
128-
/// <summary>
129-
/// Shortcut to AddDefaultParameter(name, value, HttpHeader) overload
130-
/// </summary>
131-
/// <param name="name">Name of the header to add</param>
132-
/// <param name="value">Value of the header to add</param>
133-
/// <returns></returns>
134-
public void AddDefaultHeader(string name, string value)
135-
{
136-
AddDefaultParameter(name, value, ParameterType.HttpHeader);
137-
}
138-
139-
/// <summary>
140-
/// Shortcut to AddDefaultParameter(name, value, UrlSegment) overload
141-
/// </summary>
142-
/// <param name="name">Name of the segment to add</param>
143-
/// <param name="value">Value of the segment to add</param>
144-
/// <returns></returns>
145-
public void AddDefaultUrlSegment(string name, string value)
146-
{
147-
AddDefaultParameter(name, value, ParameterType.UrlSegment);
148-
}
149-
15082
/// <summary>
15183
/// Registers a content handler to process response content
15284
/// </summary>

RestSharp/RestClientExtensions.cs

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,5 +196,77 @@ public static IRestResponse Delete(this IRestClient client, IRestRequest request
196196
return client.Execute(request);
197197
}
198198
#endif
199+
200+
/// <summary>
201+
/// Add a parameter to use on every request made with this client instance
202+
/// </summary>
203+
/// <param name="restClient">The IRestClient instance</param>
204+
/// <param name="p">Parameter to add</param>
205+
/// <returns></returns>
206+
public static void AddDefaultParameter(this IRestClient restClient, Parameter p)
207+
{
208+
if (p.Type == ParameterType.RequestBody)
209+
{
210+
throw new NotSupportedException(
211+
"Cannot set request body from default headers. Use Request.AddBody() instead.");
212+
}
213+
214+
restClient.DefaultParameters.Add(p);
215+
}
216+
217+
/// <summary>
218+
/// Adds a HTTP parameter (QueryString for GET, DELETE, OPTIONS and HEAD; Encoded form for POST and PUT)
219+
/// Used on every request made by this client instance
220+
/// </summary>
221+
/// <param name="restClient">The IRestClient instance</param>
222+
/// <param name="name">Name of the parameter</param>
223+
/// <param name="value">Value of the parameter</param>
224+
/// <returns>This request</returns>
225+
public static void AddDefaultParameter(this IRestClient restClient, string name, object value)
226+
{
227+
restClient.AddDefaultParameter(new Parameter { Name = name, Value = value, Type = ParameterType.GetOrPost });
228+
}
229+
230+
/// <summary>
231+
/// Adds a parameter to the request. There are four types of parameters:
232+
/// - GetOrPost: Either a QueryString value or encoded form value based on method
233+
/// - HttpHeader: Adds the name/value pair to the HTTP request's Headers collection
234+
/// - UrlSegment: Inserted into URL if there is a matching url token e.g. {AccountId}
235+
/// - RequestBody: Used by AddBody() (not recommended to use directly)
236+
/// </summary>
237+
/// <param name="restClient">The IRestClient instance</param>
238+
/// <param name="name">Name of the parameter</param>
239+
/// <param name="value">Value of the parameter</param>
240+
/// <param name="type">The type of parameter to add</param>
241+
/// <returns>This request</returns>
242+
public static void AddDefaultParameter(this IRestClient restClient, string name, object value, ParameterType type)
243+
{
244+
restClient.AddDefaultParameter(new Parameter { Name = name, Value = value, Type = type });
245+
}
246+
247+
/// <summary>
248+
/// Shortcut to AddDefaultParameter(name, value, HttpHeader) overload
249+
/// </summary>
250+
/// <param name="restClient">The IRestClient instance</param>
251+
/// <param name="name">Name of the header to add</param>
252+
/// <param name="value">Value of the header to add</param>
253+
/// <returns></returns>
254+
public static void AddDefaultHeader(this IRestClient restClient, string name, string value)
255+
{
256+
restClient.AddDefaultParameter(name, value, ParameterType.HttpHeader);
257+
}
258+
259+
/// <summary>
260+
/// Shortcut to AddDefaultParameter(name, value, UrlSegment) overload
261+
/// </summary>
262+
/// <param name="restClient">The IRestClient instance</param>
263+
/// <param name="name">Name of the segment to add</param>
264+
/// <param name="value">Value of the segment to add</param>
265+
/// <returns></returns>
266+
public static void AddDefaultUrlSegment(this IRestClient restClient, string name, string value)
267+
{
268+
restClient.AddDefaultParameter(name, value, ParameterType.UrlSegment);
269+
}
270+
199271
}
200272
}

0 commit comments

Comments
 (0)