Not receiving cookie suddenly for HttpWebRequest POST placed through Visual Studio C# code

69 Views Asked by At

There is a common framework in our company where we pass username, password, url and get the cookie back. It was working for me for a long time and suddenly it stopped working. My team mates are able to get the cookie successfully with no issues. Here is the common function that we use to get the cookie back. Please help me to complete the troubleshooting

public static CookieContainer GetAvidAuthCookies(string url, string userName, string password, bool allowAutoRedirect = false)
{ 
         HttpWebRequest req = null;

         HttpWebResponse resp = null;
        
         CookieContainer cookieContainer = new CookieContainer();

        req = (HttpWebRequest) WebRequest.Create(url);
        req.CookieContainer = cookieContainer;
        req.Method = "POST";
        req.ContentType = "application/x-www-form-urlencoded";
        //          req.ContentType = "text/xml;charset=UTF-8"; //for SOAP
        req.Timeout = 30000;
        req.AllowAutoRedirect = allowAutoRedirect;           
        req.AllowWriteStreamBuffering = true;
        req.Referer = url;
        //req.Host = "api.avidxchange.net";
        req.Headers["Authorization"] = "Basic " +
                                       Convert.ToBase64String(
                                           System.Text.Encoding.ASCII.GetBytes(userName + ":" + password));
        var request = Common.GetMemoryStream("username=" + userName + "&password=" + password + "&submit=");

        if (request != null)
        {
            req.ContentLength = request.Length;
            Stream sw = req.GetRequestStream();

            byte[] buffer = new byte[1024];

            int bytesRead = 0;
            request.Position = 0;
            while ((bytesRead = request.Read(buffer, 0, buffer.Length)) != 0)
            {
                sw.Write(buffer, 0, bytesRead);
            }
            request.Flush();
            request.Close();
            sw.Flush();
            sw.Close();
        }

        try
        {
            resp = (HttpWebResponse) req.GetResponse();
        }
        catch (WebException we)
        {
            resp = (HttpWebResponse) we.Response;
            Debug.WriteLine("Response:" + we.InnerException + "\r\n" + resp.StatusCode + ":" +
                            new StreamReader(we.Response.GetResponseStream()).ReadToEnd());
            var responseStream = we.Response.GetResponseStream();
            if (responseStream != null) responseStream.Position = 0;
        }
        var rStream = resp.GetResponseStream();
        var responseText = new StreamReader(rStream).ReadToEnd();
        var t = resp.Cookies;
        return cookieContainer;
    }
0

There are 0 best solutions below