示例#1
0
        public string GetResponse(string requestUrl, string requestContents)
        {
            string requestHash = requestContents.ToSha1Hash();

            if (ResponseCache.ContainsKey(requestHash))
            {
                return(ResponseCache.Get(requestHash));
            }

            byte[] bytes      = new ASCIIEncoding().GetBytes(requestContents);
            var    webRequest = (HttpWebRequest)WebRequest.Create(requestUrl);

            webRequest.Method        = "POST";
            webRequest.ContentType   = "application/x-www-form-urlencoded";
            webRequest.ContentLength = bytes.Length;
            Stream requestStream = webRequest.GetRequestStream();

            requestStream.Write(bytes, 0, bytes.Length);
            requestStream.Close();
            WebResponse response = webRequest.GetResponse();

            string responseXml;

            using (Stream stream = response.GetResponseStream()) {
                if (stream == null)
                {
                    return(String.Empty);
                }

                var reader = new StreamReader(stream);
                responseXml = reader.ReadToEnd();
            }

            responseXml = RemoveCommasFromDecimalValues(responseXml);

            ResponseCache.Add(requestHash, responseXml, 30);

            return(responseXml);
        }