public HttpResponseData Delete(HttpRequestData requestData) { var asyncResult = BeginDelete(requestData, null, null); if (asyncResult != null && (asyncResult.IsCompleted || asyncResult.AsyncWaitHandle.WaitOne())) { return EndDelete(asyncResult); } return null; }
public IAsyncResult BeginPut(HttpRequestData requestData, AsyncCallback callback, object state) { return StartProcessing(requestData, callback, state); }
private IAsyncResult StartProcessing(HttpRequestData requestData, AsyncCallback callback, object state) { Uri uri = BaseUri.Append(requestData.Path); var asyncResult = new HttpAsyncResult(callback, state) { Request = (HttpWebRequest) WebRequest.Create(uri) }; if (requestData.Headers != null) asyncResult.Request.Headers = requestData.Headers; asyncResult.Request.Method = requestData.Method; asyncResult.Request.Referer = BaseUri.ToString(); if (requestData.ContentType != null) asyncResult.Request.ContentType = requestData.ContentType; if (requestData.Data != null) asyncResult.RequestData.Append(requestData.Data); switch (requestData.Method) { case HttpMethod.Get: case HttpMethod.Head: case HttpMethod.Delete: case HttpMethod.Options: asyncResult.InternalAsyncResult = asyncResult.Request.BeginGetResponse(GetResponseCallback, asyncResult); return asyncResult; case HttpMethod.Put: case HttpMethod.Post: asyncResult.InternalAsyncResult = asyncResult.Request.BeginGetRequestStream(GetRequestStreamCallback, asyncResult); return asyncResult; } throw new ArgumentException(string.Format("Invalid method '{0}'", requestData.Method), "method"); }