Braintree.TestUtil.TestHelper.QueryStringForTR C# (CSharp) Метод

QueryStringForTR() публичный статический Метод

public static QueryStringForTR ( Request trParams, Request req, string postURL, Braintree.BraintreeService service ) : string
trParams Request
req Request
postURL string
service Braintree.BraintreeService
Результат string
        public static string QueryStringForTR(Request trParams, Request req, string postURL, BraintreeService service)
        {
#if netcore
            string trData = TrUtil.BuildTrData(trParams, "http://example.com", service);
            string postData = "tr_data=" + WebUtility.UrlEncode(trData) + "&";
            postData += req.ToQueryString();

            var request = new HttpRequestMessage(new HttpMethod("POST"), postURL);

            request.Headers.Add("KeepAlive", "false");
            request.Headers.Add("Accept", "application/json");
            byte[] buffer = Encoding.UTF8.GetBytes(postData);
            request.Content = new StringContent(postData, Encoding.UTF8, "application/x-www-form-urlencoded");
            request.Content.Headers.Add("Content-Length", buffer.Length.ToString());
            var httpClientHandler = new HttpClientHandler
            {
                AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate,
                AllowAutoRedirect = false,
            };

            HttpResponseMessage response;

            using (var client = new HttpClient(httpClientHandler))
            {
                response = client.SendAsync(request).GetAwaiter().GetResult();
            }
            
            StreamReader reader = new StreamReader(response.Content.ReadAsStreamAsync().Result, Encoding.UTF8);
            string responseBody = reader.ReadToEnd();
            string query = response.Headers.Location.Query;
            return query;
#else
            string trData = TrUtil.BuildTrData(trParams, "http://example.com", service);
            string postData = "tr_data=" + HttpUtility.UrlEncode(trData, Encoding.UTF8) + "&";
            postData += req.ToQueryString();

            var request = WebRequest.Create(postURL) as HttpWebRequest;

            request.Method = "POST";
            request.KeepAlive = false;
            request.AllowAutoRedirect = false;

            byte[] buffer = Encoding.UTF8.GetBytes(postData);
            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = buffer.Length;
            Stream requestStream = request.GetRequestStream();
            requestStream.Write(buffer, 0, buffer.Length);
            requestStream.Close();

            var response = request.GetResponse() as HttpWebResponse;
            string query = new Uri(response.GetResponseHeader("Location")).Query;

            response.Close();

            return query;
#endif
        }