1 Reply Latest reply on Oct 15, 2015 10:06 AM by davidc RSS
    davidc Explorer

    C#-based login fails with 401

    This works if I do it in an HTML form on a browser, but fails with HTTP 401 when performed as below.

    Any ideas why?


    Note: <server>, <username>, and <password> are placeholders


    static void Main(string[] args)

    {

                HttpWebRequest httpWReq = (HttpWebRequest)WebRequest.Create("http://<server>/Thingworx/action-login");


                ASCIIEncoding encoding = new ASCIIEncoding();

                string postData = "thingworx-form-userid=<username>";

                postData += "&thingworx-form-password=<password>";

                postData += "&x-thingworx-session=true";

                byte[] data = encoding.GetBytes(postData);


                httpWReq.Method = "POST";

                httpWReq.ContentType = "application/x-www-form-urlencoded";

                httpWReq.ContentLength = data.Length;


                using (Stream stream = httpWReq.GetRequestStream())

                {

                    stream.Write(data, 0, data.Length);

                }


                // This line throws the 401 exception

                HttpWebResponse response = (HttpWebResponse)httpWReq.GetResponse();


                string responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();

    }