Ejemplo n.º 1
0
 public HttpResponseData Delete(HttpRequestData requestData)
 {
     var asyncResult = BeginDelete(requestData, null, null);
     if (asyncResult != null && (asyncResult.IsCompleted || asyncResult.AsyncWaitHandle.WaitOne()))
     {
         return EndDelete(asyncResult);
     }
     return null;
 }
Ejemplo n.º 2
0
 public IAsyncResult BeginPut(HttpRequestData requestData, AsyncCallback callback, object state)
 {
     return StartProcessing(requestData, callback, state);
 }
Ejemplo n.º 3
0
        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");
        }