-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathBetterWebClient.cs
executable file
·64 lines (53 loc) · 1.8 KB
/
BetterWebClient.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
namespace SharpHadoop.Utilities.Net
{
///<summary>
/// http://stackoverflow.com/questions/3574659/how-to-get-status-code-from-webclient
/// Additions: Expose property AllowAutoRedirect
///</summary>
public class BetterWebClient : WebClient
{
private WebRequest _Request = null;
private bool _AllowAutoRedirect { get; set; }
public bool AllowAutoRedirect
{
get { return _AllowAutoRedirect; }
set
{
_AllowAutoRedirect = value;
}
}
protected override WebRequest GetWebRequest(Uri address)
{
this._Request = base.GetWebRequest(address);
if (this._Request is HttpWebRequest)
{
((HttpWebRequest)this._Request).AllowAutoRedirect = this._AllowAutoRedirect;
}
return this._Request;
}
public HttpStatusCode StatusCode()
{
HttpStatusCode result;
if (this._Request == null)
{
throw (new InvalidOperationException("Unable to retrieve the status code, maybe you haven't made a request yet."));
}
HttpWebResponse response = base.GetWebResponse(this._Request)
as HttpWebResponse;
if (response != null)
{
result = response.StatusCode;
}
else
{
throw (new InvalidOperationException("Unable to retrieve the status code, maybe you haven't made a request yet."));
}
return result;
}
}
}