IQueryResult <T> Post <T>(IQueryRequest queryRequest) { var queryResult = new QueryResult <T>(); try { var request = WebRequest.Create(queryRequest.GetBaseUri()); request.Timeout = _clientConfig.ViewRequestTimeout; request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; var bytes = System.Text.Encoding.UTF8.GetBytes(queryRequest.GetQueryParameters()); request.ContentLength = bytes.Length; using (var stream = request.GetRequestStream()) { stream.Write(bytes, 0, bytes.Length); } var response = request.GetResponse(); using (var stream = response.GetResponseStream()) { queryResult = DataMapper.Map <QueryResult <T> >(stream); queryResult.Success = queryResult.Status == QueryStatus.Success; } } catch (WebException e) { if (e.Response != null) { var stream = e.Response.GetResponseStream(); queryResult = DataMapper.Map <QueryResult <T> >(stream); } queryResult.Exception = e; Log.Error(e); } catch (Exception e) { ProcessError(e, queryResult); Log.Error(e); } return(queryResult); }