I'm trying to create a new contact (proof of concept) thru web api, but om getting 401 Unauthorized. I'll post my code below:
try { var jsonStr = "{ \"firstname\": \"Test\", \"lastname\":\"API\" }"; string username = "lars@foo.onmicrosoft.com"; string password = "qwert1234"; string domain = "foo.onmicrosoft.com"; string baseAddress = "https://foo.crm4.dynamics.com"; byte[] credentialBuffer = new UTF8Encoding().GetBytes(username + ":" + password); var request = (HttpWebRequest)WebRequest.Create(baseAddress + "/api/data/v9.1/contacts"); request.Method = "POST";
request.ContentType = "application/json"; request.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(credentialBuffer)); request.Headers.Add("OData-MaxVersion", "4.0"); request.Headers.Add("OData-Version", "4.0"); using (var stream = request.GetRequestStream()) { var jsonStrBytes = Encoding.ASCII.GetBytes(jsonStr); stream.Write(jsonStrBytes, 0, jsonStrBytes.Length); } var response = (HttpWebResponse)request.GetResponse(); var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd(); } catch (Exception ex) { }
But from this I get 401 Unauthorized. This is Dynamics CRM Online and my user is a 365 user. What am I missing here?
*This post is locked for comments