/// <summary>
		///     Template method to return response text
		/// </summary>
		protected string GetResponseText(RequestParameters requestParameters)
		{
			var requestBuilder = new HttpWebRequestBuilder(requestParameters);
			var request = requestBuilder.BuildWebRequest();

			using (var response = request.GetResponse() as HttpWebResponse)
			using (var responseStream = response.GetResponseStream())
			using (var reader = new StreamReader(responseStream))
			{
				return reader.ReadToEnd();
			}
		}
		protected async Task<string> GetResponseTextAsync(RequestParameters requestParameters)
		{
			var requestBuilder = new HttpWebRequestBuilder(requestParameters);
			var request = await requestBuilder.BuildWebRequestAsync();

			using (HttpWebResponse response = (HttpWebResponse)await Task.Factory.FromAsync<WebResponse>(
				request.BeginGetResponse, request.EndGetResponse, request).ConfigureAwait(false))
			using (Stream responseStream = response.GetResponseStream())
			using (StreamReader reader = new StreamReader(responseStream))
			{
				return await reader.ReadToEndAsync().ConfigureAwait(false);
			}
		}
		public RequestUriBuilder(RequestParameters requestParameters)
		{
			_requestParameters = requestParameters;
		}
		public HttpWebRequestBuilder(RequestParameters requestParameters)
		{
			_requestParameters = requestParameters;
		}