AnalyticsApi.HttpWrapper.Post C# (CSharp) Method

Post() public method

public Post ( string url, string>.Dictionary parameters ) : string
url string
parameters string>.Dictionary
return string
        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);
            }
        }