Ejemplo n.º 1
0
        private ResponseAccessor <TReturnType> EndGetRequest <TReturnType>(ManualAsyncResult result)
        {
            try
            {
                result.TimeOutWait();

                if (result.Error != null)
                {
                    if (Con.AutoHost)
                    {
                        result = result.RequestRetryHandler.RetryRequest();
                    }
                }

                var responseStream = result.Response.GetResponseStream();

                var responseAccesor = ReadStream(result, responseStream, 0);

                return(new ResponseAccessor <TReturnType>()
                {
                    Content = JsonConvert.DeserializeObject <TReturnType>(responseAccesor.Content),
                });
            }
            catch (Exception ex)
            {
                return(new ResponseAccessor <TReturnType>()
                {
                    Ex = ex
                });
            }
        }
Ejemplo n.º 2
0
        private ResponseAccessor <TReturnType> EndPostRequest <TReturnType>(ManualAsyncResult result)
        {
            try
            {
                result.TimeOutWait();

                if (result.Error != null)
                {
                    if (Con.AutoHost)
                    {
                        result = result.RequestRetryHandler.RetryRequest();
                    }
                }

                Stream responseStream = null;

                var temp = new ManualAsyncResult();

                result.HttpWebRequest.BeginGetResponse(temp.WrapHandler(ar =>
                {
                    try
                    {
                        var response = result.HttpWebRequest.EndGetResponse(ar);

                        responseStream = response.GetResponseStream();
                    }
                    catch (Exception ex)
                    {
                        result.Error = ex;
                    }
                }), null);

                temp.TimeOutWait();

                if (result.Error != null)
                {
                    return(new ResponseAccessor <TReturnType>()
                    {
                        Ex = result.Error
                    });
                }

                var responseAccessor = ReadStream(result, responseStream, 0);

                return(new ResponseAccessor <TReturnType>()
                {
                    Content = JsonConvert.DeserializeObject <TReturnType>(responseAccessor.Content),
                });
            }
            catch (Exception ex)
            {
                return(new ResponseAccessor <TReturnType>()
                {
                    Ex = ex
                });
            }
        }