//public object SendRequest(string requestContent)
        //{
        //    string retXml = GetTogether.Utility.RequestHelper.GetRequest(this.Url, requestContent, "POST", "application/x-www-form-urlencoded", this.Timeout);
        //    return GetTogether.Utility.Xml.XmlHelper.FormatXml(retXml);
        //}
        public string SendRequest(string requestContent, RequestProperty properties)
        {
            if (properties.Accept != null) properties.Accept = properties.Accept.Trim();
            if (properties.Address != null) properties.Address = properties.Address.Trim();
            if (properties.BasicAuthPassword != null) properties.BasicAuthPassword = properties.BasicAuthPassword.Trim();
            if (properties.BasicAuthUserName != null) properties.BasicAuthUserName = properties.BasicAuthUserName.Trim();
            if (properties.ContentType != null) properties.ContentType = properties.ContentType.Trim();
            if (properties.Expect != null) properties.Expect = properties.Expect.Trim();
            if (properties.MediaType != null) properties.MediaType = properties.MediaType.Trim();
            if (properties.Method != null) properties.Method = properties.Method.Trim();
            if (properties.Referer != null) properties.Referer = properties.Referer.Trim();
            if (properties.TransferEncoding != null) properties.TransferEncoding = properties.TransferEncoding.Trim();
            if (properties.UserAgent != null) properties.UserAgent = properties.UserAgent.Trim();

            if (string.IsNullOrEmpty(properties.Address)) properties.Address = this.Url;
            if (properties.Timeout == 0) properties.Timeout = this.Timeout;
            if (string.IsNullOrEmpty(properties.Method)) properties.Method = "post";
            if (string.IsNullOrEmpty(properties.ContentType)) properties.ContentType = "text/xml; charset=utf-8";//application/x-www-form-urlencoded

            return RequestHelper.SendRequest(requestContent, properties);
        }
        public static string SendRequest(string requestContent, RequestProperty properties)
        {
            string responseXml = string.Empty;
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(properties.Address);
            if (properties.Timeout > 0) req.Timeout = properties.Timeout;
            byte[] request_bytes = System.Text.Encoding.UTF8.GetBytes(requestContent);
            req.Method = properties.Method;//"POST";
            req.ContentType = properties.ContentType;//"text/xml,application/x-www-form-urlencoded
            req.ContentLength = request_bytes.Length;
            if (properties.Headers != null && properties.Headers.Length > 0)
            {
                foreach (string s in properties.Headers)
                {
                    string[] headerInfo = s.Split('|');
                    if (headerInfo.Length == 2)
                        req.Headers[headerInfo[0]] = headerInfo[1];
                }
            }
            CredentialCache cache = new CredentialCache();
            bool flag = false;
            if (!string.IsNullOrEmpty(properties.BasicAuthUserName) && !string.IsNullOrEmpty(properties.BasicAuthPassword))
            {
                cache.Add(new Uri(properties.Address), "Basic", new NetworkCredential(properties.BasicAuthUserName, properties.BasicAuthPassword));
                flag = true;
            }
            if (properties.UseDefaultCredential)
            {
                cache.Add(new Uri(properties.Address), "NTLM", (NetworkCredential)CredentialCache.DefaultCredentials);
                flag = true;
            }
            if (flag)
            {
                req.Credentials = cache;
            }
            req.UserAgent = properties.UserAgent;
            req.AllowAutoRedirect = properties.AllowAutoRedirect;
            req.AllowWriteStreamBuffering = properties.AllowWriteStreamBuffering;
            req.KeepAlive = properties.KeepAlive;
            req.Pipelined = properties.Pipelined;
            req.PreAuthenticate = properties.PreAuthenticate;
            req.Referer = properties.Referer;
            req.SendChunked = properties.SendChunked;
            req.TransferEncoding = properties.TransferEncoding;
            req.Accept = properties.Accept;
            req.Expect = properties.Expect;
            req.MediaType = properties.MediaType;

            Stream request_stream = req.GetRequestStream();
            request_stream.Write(request_bytes, 0, request_bytes.Length);
            request_stream.Close();
            try
            {
                HttpWebResponse response = (HttpWebResponse)req.GetResponse();
                responseXml = RequestHelper.GetResponse(response);
                response.Close();
            }
            catch (WebException exception)
            {
                if (exception.Response != null)
                {
                    responseXml = RequestHelper.GetResponse((HttpWebResponse)exception.Response);
                }
                else
                {
                    responseXml = exception.ToString();
                }
            }
            catch (Exception exception2)
            {
                responseXml = exception2.ToString();
            }
            return responseXml;
        }