ServiceStack.Text.WebRequestExtensions.SendStringToUrl C# (CSharp) Méthode

SendStringToUrl() public static méthode

public static SendStringToUrl ( this url, string method = null, string requestBody = null, string contentType = null, string acceptContentType = "*/*", Action requestFilter = null, Action responseFilter = null ) : string
url this
method string
requestBody string
contentType string
acceptContentType string
requestFilter Action
responseFilter Action
Résultat string
        public static string SendStringToUrl(this string url, string method = null,
            string requestBody = null, string contentType = null, string acceptContentType = "*/*",
            Action<HttpWebRequest> requestFilter = null, Action<HttpWebResponse> responseFilter = null)
        {
            var webReq = (HttpWebRequest)WebRequest.Create(url);
            if (method != null)
                webReq.Method = method;
            if (contentType != null)
                webReq.ContentType = contentType;

            webReq.Accept = acceptContentType;
            webReq.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip,deflate");
            webReq.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;

            if (requestFilter != null)
            {
                requestFilter(webReq);
            }

            if (requestBody != null)
            {
                using (var reqStream = webReq.GetRequestStream())
                using (var writer = new StreamWriter(reqStream))
                {
                    writer.Write(requestBody);
                }
            }

            using (var webRes = webReq.GetResponse())
            using (var stream = webRes.GetResponseStream())
            using (var reader = new StreamReader(stream))
            {
                if (responseFilter != null)
                {
                    responseFilter((HttpWebResponse)webRes);
                }
                return reader.ReadToEnd();
            }
        }