Friday 14 December 2018

Rest API GET call JSON format using basic authentication in Dynamics 365 F&O / AX 7.0

In this post I'll be showing you how to send a GET call from dynamics 365 F&O system and the return format is in JSON.

Created a simple x++ job below. Please change according to your requirement.


class TestExternalCall_GET_JSON
{     
    /// <summary>
    /// Runs the class with the specified arguments.
    /// </summary>
    /// <param name = "_args">The specified arguments.</param>
    public static void main(Args _args)
    { 
     
        int                                                      find;
        str                                                      url,aosUri,activeDirectoryTenant;
        str                                                      activeDirectoryClientAppId;
        str                                                      activeDirectoryClientAppSecret;
        str                                                      postData,activeDirectoryResource;
        str                                                      aadClientAppSecret,oAuthHeader;
        str                                                      returnValue,jsonString,jsondszstr;
        System.Net.HttpWebRequest           request;
        System.Net.HttpWebResponse         response;
        System.Byte[]                                   byteArray;
        System.IO.Stream                             dataStream;
        System.IO.StreamReader                 streamRead;
        System.IO.StreamWriter                  streamWrite;
        System.Net.ServicePoint                  servicePoint;
        System.Net.ServicePointManager    servicePointmgr;
        System.Net.HttpVersion                   version;
        CLRObject                                        clrObj;
        Newtonsoft.Json.JsonReader            reader;
        System.Text.Encoding                      utf8;
        Counter                                             countCounter;
        Object                                               obj;
        Map                                                  data;
        System.Byte[]                   byteArraynew;

        System.Net.WebHeaderCollection headers = new System.Net.WebHeaderCollection();
     
        str  byteStr = strfmt('%1:%2', "USERNAME", "PASSWORD");
     
        new InteropPermission(InteropKind::ClrInterop).assert();

        headers = new System.Net.WebHeaderCollection();
     
        url = "Paste endpoint URL here";
     
        clrObj = System.Net.WebRequest::Create(url);
   
   
        request = clrObj;
        request.set_Method("GET");
        request.set_KeepAlive(true);
   
        request.set_ContentType("application/json");
        utf8    = System.Text.Encoding::get_UTF8();
        byteArraynew   = utf8.GetBytes(byteStr);
        byteStr     = System.Convert::ToBase64String(byteArraynew);

        headers.Add("Authorization", 'Basic ' + byteStr);
        request.set_Headers(headers);

        servicePoint = request.get_ServicePoint();

        System.Net.ServicePointManager::set_Expect100Continue(false);

        System.Net.ServicePointManager::set_SecurityProtocol(System.Net.SecurityProtocolType::Tls12);

   

        response = request.GetResponse();

   
        dataStream = response.GetResponseStream();


        streamRead = new System.IO.StreamReader(dataStream);

        jsonString = streamRead.ReadToEnd();

        info(strFmt("%1",jsonString));

        dataStream.Close();

        response.Close();
    }

}

In my next post I'll show you how to use OAUTH in GET call instead of normal authorization.
@Rahul

7 comments:

  1. I feel there is a need to provide some more information about REST API and its uses alongwith complexities.

    SQL Server Load Rest API

    ReplyDelete
  2. how to use token based api authentication

    ReplyDelete
  3. When you use a genuine service, you will be able to provide instructions, share materials and choose the formatting style. outsourcing services

    ReplyDelete
  4. I can see that you are an expert at your field! I am launching a website soon, and your information will be very useful for me.. Thanks for all your help and wishing you all the success in your business. business conference call services

    ReplyDelete
  5. Hi, did you ever create a blog on doing this but using Oauth at the authentication?

    ReplyDelete

Adding a newline into a string in C# and X++

Below is the sample code we can use for  adding a newline after every occurrence of "@" symbol in the string in C#   using System...