public string Call()
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
HttpWebResponse response = null;
string result = "";
request.Method = RequestType.ToString();
request.AllowAutoRedirect = true;
request.UserAgent = "Mozilla/5.0";
request.ContentType = "application/x-www-form-urlencoded; charset=utf-8";
request.CookieContainer = new CookieContainer();
request.Referer = "";
switch (RequestFormat)
{
case RequestFormatEnum.JSON:
//request.ContentType = "application/json; charset=utf-8";
request.Accept = "application/json";
break;
case RequestFormatEnum.XML:
//request.ContentType = "application/xml; charset=utf-8";
request.Accept = "application/xml";
break;
}
request.Timeout = Timeout;
request.ReadWriteTimeout = Timeout;
if (HeaderItems != null)
{
foreach (KeyValuePair<string, string> item in HeaderItems)
{
request.Headers.Add(item.Key, item.Value);
}
}
if (RequestType == RequestTypeEnum.POST || RequestType == RequestTypeEnum.PUT || RequestType == RequestTypeEnum.PATCH)
{
if (String.IsNullOrEmpty(Payload))
{
Payload = "";
}
var dataToSend = Encoding.UTF8.GetBytes(Payload);
request.ContentLength = dataToSend.Length;
request.GetRequestStream().Write(dataToSend, 0, dataToSend.Length);
}
try
{
using (response = (HttpWebResponse)request.GetResponse())
{
using (Stream responseStream = response.GetResponseStream())
{
using (StreamReader readStream = new StreamReader(responseStream, Encoding.UTF8))
{
result = readStream.ReadToEnd();
}
}
if (response != null)
{
LastStatus = ((Int32)response.StatusCode).ToString();
}
}
}
catch (WebException ex)
{
LastStatus = result = ex.ToString();
}
return result;
}