Below code helps you to call the RestFul API using basic authentication method of adding Authorization header.
static void
CallRESTFulAPI(Args _args)
{
    str                             url;
    str                             byteStr;
    System.Net.HttpWebRequest       request;
    System.Net.HttpWebResponse      response;
    System.Byte[]                   byteArray;
    System.IO.Stream                stream;
    System.IO.Stream                dataStream;
    System.IO.StreamReader          streamReader;
    System.Net.ServicePoint         servicePoint;
    System.Net.WebHeaderCollection  httpHeader;
    CLRObject                       clrObj;
    System.Text.Encoding            utf8;
    xml responseXml;
    ;
    byteStr = strfmt('%1:%2',
"USERNAME", "PASSWORD");
    new
InteropPermission(InteropKind::ClrInterop).assert();
    httpHeader = new System.Net.WebHeaderCollection();
    url =
"https://xecdapi.xe.com/v1/convert_from.xml/?from=USD&to=CAD,CHF,CNY,EUR,GBP,HKD,SGD,THB,USD,YEN,&inverse=true";
    clrObj     
= System.Net.WebRequest::Create(url);
    request    
= clrObj;
    request.set_Method("GET");
    request.set_KeepAlive(true);
   
request.set_ContentType("application/xml");
    utf8       
= System.Text.Encoding::get_UTF8();
    byteArray  
= utf8.GetBytes(byteStr);
    byteStr    
= System.Convert::ToBase64String(byteArray);
    httpHeader.Add("Authorization",
'Basic ' + byteStr);
    try
    {
        request.set_Headers(httpHeader);
        response = request.GetResponse();
        dataStream =
response.GetResponseStream();
        streamReader = new
System.IO.StreamReader(dataStream);
        responseXml  = streamReader.ReadToEnd();
    }
    catch (Exception::CLRError)
    {
        throw error ("Error while
connecting API");
    }
    streamReader.Close();
    dataStream.Close();
    response.Close();
}
Excellent thank you very much
ReplyDeleteIt was a great information. Thanks for sharing.
ReplyDeleteD365 Finance and Operations Training
D365 Finance Training
D365 Operations Training