bool preAuthenticate;
Encoding requestEncoding;
int timeout;
- string url;
- bool abort;
//
// Used by SoapHttpClientProtocol, use this to avoid creating a new Uri on each invocation.
preAuthenticate = false;
requestEncoding = null;
timeout = 100000;
- url = String.Empty;
- abort = false;
}
#endregion // Constructors
[RecommendedAsConfigurable (true)]
[WebServicesDescription ("The base URL to the server to use for requests.")]
public string Url {
- get { return url; }
- set {
- url = value;
- uri = new Uri (url);
- }
+ get { return uri == null ? String.Empty : uri.AbsoluteUri; }
+ set { uri = new Uri (value); }
}
#if NET_2_0
public bool UseDefaultCredentials {
public virtual void Abort ()
{
- if (current_request != null){
- current_request.Abort ();
- current_request = null;
- }
- abort = true;
+ WebRequest request = current_request;
+ current_request = null;
+ if (request != null)
+ request.Abort ();
}
protected static void AddToCache (Type type, object value)
if (uri == null)
throw new InvalidOperationException ("uri is null");
- current_request = WebRequest.Create (uri);
- current_request.Timeout = timeout;
- current_request.PreAuthenticate = preAuthenticate;
- current_request.ConnectionGroupName = connectionGroupName;
+ WebRequest request = WebRequest.Create (uri);
+ request.Timeout = timeout;
+ request.PreAuthenticate = preAuthenticate;
+ request.ConnectionGroupName = connectionGroupName;
if (credentials != null)
- current_request.Credentials = credentials;
+ request.Credentials = credentials;
- return current_request;
+ current_request = request;
+ return request;
}
protected virtual WebResponse GetWebResponse (WebRequest request)
{
- if (abort)
- throw new WebException ("The operation has been aborted.", WebExceptionStatus.RequestCanceled);
-
WebResponse response = null;
try {
request.Timeout = timeout;
protected virtual WebResponse GetWebResponse (WebRequest request, IAsyncResult result)
{
- if (abort)
- throw new WebException ("The operation has been aborted.", WebExceptionStatus.RequestCanceled);
-
return request.EndGetResponse (result);
}