@@ -97,6 +97,16 @@ public int RequestsThisBurst
97
97
get { return _requestsThisBurst ; }
98
98
}
99
99
100
+ /// <summary>
101
+ /// Whether or not to use a proxy when executing web requests
102
+ /// </summary>
103
+ public bool UseProxy { get ; set ; }
104
+
105
+ /// <summary>
106
+ /// Proxy for executing web requests, will not be used unless <see cref="UseProxy"/> is true
107
+ /// </summary>
108
+ public WebProxy Proxy { get ; set ; }
109
+
100
110
static WebAgent ( )
101
111
{
102
112
UserAgent = "" ;
@@ -141,6 +151,12 @@ public virtual JToken CreateAndExecuteRequest(string url)
141
151
public virtual JToken ExecuteRequest ( HttpWebRequest request )
142
152
{
143
153
EnforceRateLimit ( ) ;
154
+
155
+ if ( UseProxy )
156
+ {
157
+ request . Proxy = Proxy ;
158
+ }
159
+
144
160
HttpWebResponse response = ( HttpWebResponse ) request . GetResponse ( ) ;
145
161
var result = GetResponseString ( response . GetResponseStream ( ) ) ;
146
162
@@ -253,6 +269,7 @@ public virtual HttpWebRequest CreateRequest(string url, string method)
253
269
}
254
270
request . Method = method ;
255
271
request . UserAgent = UserAgent + " - with RedditSharp by /u/meepster23" ;
272
+ request = InjectProxy ( request ) ;
256
273
return request ;
257
274
}
258
275
@@ -278,6 +295,7 @@ protected virtual HttpWebRequest CreateRequest(Uri uri, string method)
278
295
}
279
296
request . Method = method ;
280
297
request . UserAgent = UserAgent + " - with RedditSharp by /u/meepster23" ;
298
+ request = InjectProxy ( request ) ;
281
299
return request ;
282
300
}
283
301
@@ -382,5 +400,18 @@ private static bool IsOAuth()
382
400
{
383
401
return RootDomain == "oauth.reddit.com" ;
384
402
}
403
+
404
+ /// <summary>
405
+ /// Inject the web proxy <see cref="Proxy"/> into the provided request
406
+ /// </summary>
407
+ /// <param name="request">The request object to inject the proxy into</param>
408
+ public virtual HttpWebRequest InjectProxy ( HttpWebRequest request )
409
+ {
410
+ if ( this . UseProxy )
411
+ {
412
+ request . Proxy = this . Proxy ;
413
+ }
414
+ return request ;
415
+ }
385
416
}
386
417
}
0 commit comments