User Review
( votes)In the previous post we saw how to use CrmServiceClient to connect to CDS using Authentication Type – OAuth and execute web request using Organization.svc service
https://nishantrana.me/2020/11/09/sample-code-to-connect-to-cds-dynamics-365-ce-using-oauth/
Here we will extend the same example to execute web request using Web API.
- Create the contact record with first name and last name populated
using Microsoft.Xrm.Tooling.Connector; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; namespace SampleConsoleApp { class Program { static void Main(string[] args) { string ConnectionString = "AuthType = OAuth; " + "Username = [username]@[domain].onmicrosoft.com;" + "Password = [password]; " + "Url = https://[orgname].crm.dynamics.com;" + "AppId=51f81489-12ee-4a9e-aaae-a2591f45987d;" + "RedirectUri=app://58145B91-0C36-4500-8554-080854F2AC97;" + "LoginPrompt=Auto"; CrmServiceClient svc = new CrmServiceClient(ConnectionString); // specify OData Headers Dictionary<string, List<string>> odataHeaders = new Dictionary<string, List<string>> { { "Accept", new List<string>() { "application/json" } }, { "OData-MaxVersion", new List<string>() { "4.0" } }, { "OData-Version", new List<string>() { "4.0" } } }; if (svc.IsReady) { // create a contact record with firstname and lastname populated dynamic contact = new JObject(); contact.firstname = "Meeska"; contact.lastname = "Mooska"; string jsonContact = Newtonsoft.Json.JsonConvert.SerializeObject(contact); // create the contact record // Parameters - HttpMethod, QueryString, Body, Customer Headers, Content Type HttpResponseMessage httpResponse = svc.ExecuteCrmWebRequest( HttpMethod.Post, "contacts", jsonContact, odataHeaders, "application/json"); if (httpResponse.IsSuccessStatusCode) { var contactUri = httpResponse.Headers.GetValues("OData-EntityId").FirstOrDefault(); Console.WriteLine("Contact URI: {0}", contactUri); } else { Console.WriteLine(httpResponse.ReasonPhrase); } } } } }
- Retrieve first name and last name for all the contact
// retrieve first name and last name of all the contact records HttpResponseMessage httpResponse = svc.ExecuteCrmWebRequest( HttpMethod.Get, "contacts?$select=firstname,lastname", string.Empty, odataHeaders, "application/json");
Get the details here – ExecuteCrmWebRequest
Hope it helps..