public string Post(string url, Dictionary<string, string> parameters)
{
if (url == null) throw new ArgumentNullException("url");
if (parameters == null) throw new ArgumentNullException("parameters");
var strParameters = GetParameters(parameters);
var webRequest = WebRequest.Create(url);
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.Method = "POST";
var bytes = Encoding.ASCII.GetBytes(strParameters);
Stream stream = null;
try
{
webRequest.ContentLength = bytes.Length;
stream = webRequest.GetRequestStream();
stream.Write(bytes, 0, bytes.Length);
}
catch (WebException ex)
{
throw new WebException("Error", ex);
}
finally
{
if (stream != null)
stream.Close();
}
try
{
var webResponse = webRequest.GetResponse();
if (webResponse == null)
return null;
var streamReader = new StreamReader(webResponse.GetResponseStream());
return streamReader.ReadToEnd().Trim();
}
catch (WebException ex)
{
if(ex.Message.Contains("403"))
{
throw new InvalidCredentialsException("Invalid credentials");
}
throw new WebException("Post exception", ex);
}
}