public static string SendStringToUrl(this string url, string method = null,
string requestBody = null, string contentType = null, string accept = "*/*",
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 = accept;
webReq.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip,deflate");
webReq.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
if (requestFilter != null)
{
requestFilter(webReq);
}
if (ResultsFilter != null)
{
return ResultsFilter.GetString(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();
}
}