private async Task <WebResponse> BeginGetResponse() { var address = new Uri(Address.OriginalString.AddQueryParameters(QueryString)); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(address); request.Headers = (WebHeaderCollection)Headers.OrDefault(new WebHeaderCollection()); request.Method = Method; request.ContentType = ContentType.OrDefault("application/x-www-form-urlencoded"); request.Accept = Accept.OrDefault("application/json"); if (request.Method.ToUpper() == "POST" && (Data != null || !String.IsNullOrEmpty(Content))) { using (var streamWriter = new StreamWriter(request.GetRequestStream())) { var data = String.IsNullOrEmpty(Content) ? new FormUrlEncodedContent(Data).ReadAsStringAsync().Result : Content; await streamWriter.WriteAsync(data); } } return(await request.GetResponseAsync()); }