1
+ using System ;
2
+
3
+ namespace RestSharp
4
+ {
5
+ public static class RestClientExtensions
6
+ {
7
+ /// <summary>
8
+ /// Add a parameter to use on every request made with this client instance
9
+ /// </summary>
10
+ /// <param name="restClient">The IRestClient instance</param>
11
+ /// <param name="p">Parameter to add</param>
12
+ /// <returns></returns>
13
+ public static void AddDefaultParameter ( this IRestClient restClient , Parameter p )
14
+ {
15
+ if ( p . Type == ParameterType . RequestBody )
16
+ {
17
+ throw new NotSupportedException (
18
+ "Cannot set request body from default headers. Use Request.AddBody() instead." ) ;
19
+ }
20
+
21
+ restClient . DefaultParameters . Add ( p ) ;
22
+ }
23
+
24
+ /// <summary>
25
+ /// Adds a HTTP parameter (QueryString for GET, DELETE, OPTIONS and HEAD; Encoded form for POST and PUT)
26
+ /// Used on every request made by this client instance
27
+ /// </summary>
28
+ /// <param name="restClient">The IRestClient instance</param>
29
+ /// <param name="name">Name of the parameter</param>
30
+ /// <param name="value">Value of the parameter</param>
31
+ /// <returns>This request</returns>
32
+ public static void AddDefaultParameter ( this IRestClient restClient , string name , object value )
33
+ {
34
+ restClient . AddDefaultParameter ( new Parameter { Name = name , Value = value , Type = ParameterType . GetOrPost } ) ;
35
+ }
36
+
37
+ /// <summary>
38
+ /// Adds a parameter to the request. There are four types of parameters:
39
+ /// - GetOrPost: Either a QueryString value or encoded form value based on method
40
+ /// - HttpHeader: Adds the name/value pair to the HTTP request's Headers collection
41
+ /// - UrlSegment: Inserted into URL if there is a matching url token e.g. {AccountId}
42
+ /// - RequestBody: Used by AddBody() (not recommended to use directly)
43
+ /// </summary>
44
+ /// <param name="restClient">The IRestClient instance</param>
45
+ /// <param name="name">Name of the parameter</param>
46
+ /// <param name="value">Value of the parameter</param>
47
+ /// <param name="type">The type of parameter to add</param>
48
+ /// <returns>This request</returns>
49
+ public static void AddDefaultParameter ( this IRestClient restClient , string name , object value , ParameterType type )
50
+ {
51
+ restClient . AddDefaultParameter ( new Parameter { Name = name , Value = value , Type = type } ) ;
52
+ }
53
+
54
+ /// <summary>
55
+ /// Shortcut to AddDefaultParameter(name, value, HttpHeader) overload
56
+ /// </summary>
57
+ /// <param name="restClient">The IRestClient instance</param>
58
+ /// <param name="name">Name of the header to add</param>
59
+ /// <param name="value">Value of the header to add</param>
60
+ /// <returns></returns>
61
+ public static void AddDefaultHeader ( this IRestClient restClient , string name , string value )
62
+ {
63
+ restClient . AddDefaultParameter ( name , value , ParameterType . HttpHeader ) ;
64
+ }
65
+
66
+ /// <summary>
67
+ /// Shortcut to AddDefaultParameter(name, value, UrlSegment) overload
68
+ /// </summary>
69
+ /// <param name="restClient">The IRestClient instance</param>
70
+ /// <param name="name">Name of the segment to add</param>
71
+ /// <param name="value">Value of the segment to add</param>
72
+ /// <returns></returns>
73
+ public static void AddDefaultUrlSegment ( this IRestClient restClient , string name , string value )
74
+ {
75
+ restClient . AddDefaultParameter ( name , value , ParameterType . UrlSegment ) ;
76
+ }
77
+ }
78
+ }
0 commit comments