Discussions
Activity
Best Of...
Sign In
·
Register
Home
›
NAV Tips & Tricks
Howdy, Stranger!
It looks like you're new here. Sign in or register to get started.
Sign In
Register
Quick Links
Categories
Recent Discussions
Activity
Best Of...
Unanswered
Categories
All Categories
73
General
73
Announcements
66.6K
Microsoft Dynamics NAV
18.7K
NAV Three Tier
38.4K
NAV/Navision Classic Client
3.6K
Navision Attain
2.4K
Navision Financials
116
Navision DOS
851
Navision e-Commerce
1K
NAV Tips & Tricks
772
NAV Dutch speaking only
617
NAV Courses, Exams & Certification
2K
Microsoft Dynamics-Other
1.5K
Dynamics AX
320
Dynamics CRM
111
Dynamics GP
10
Dynamics SL
1.5K
Other
990
SQL General
383
SQL Performance
34
SQL Tips & Tricks
35
Design Patterns (General & Best Practices)
1
Architectural Patterns
10
Design Patterns
5
Implementation Patterns
53
3rd Party Products, Services & Events
1.6K
General
1K
General Chat
1.6K
Website
83
Testing
1.2K
Download section
23
How Tos section
252
Feedback
12
NAV TechDays 2013 Sessions
13
NAV TechDays 2012 Sessions
consume an external web service from navision
RachidEL
Member
Posts:
8
2025-01-21
in
NAV Tips & Tricks
Hello,
I would like to consume an external web service from navision, my current version is BC 14 and i try to do it using codeunit.
thank you in advance.
0
Answers
maxklein
Member
Posts:
8
2025-05-07
its simple
OBJECT Codeunit 50100 ConsumeWebService
{
OBJECT-PROPERTIES
{
OnRun=BEGIN
CallExternalAPI();
END;
}
PROPERTIES
{
SingleInstance=Yes;
}
LOCAL PROCEDURE CallExternalAPI@1();
VAR
HttpWebRequest@1000 : DotNet "System.Net.HttpWebRequest";
HttpWebResponse@1001 : DotNet "System.Net.HttpWebResponse";
StreamReader@1002 : DotNet "System.IO.StreamReader";
RequestStream@1003 : DotNet "System.IO.Stream";
StreamWriter@1004 : DotNet "System.IO.StreamWriter";
Encoding@1005 : DotNet "System.Text.Encoding";
Uri@1006 : DotNet "System.Uri";
JsonText@1007 : Text[1024];
ResponseText@1008 : Text;
ResponseStream@1009 : DotNet "System.IO.Stream";
BEGIN
JsonText := '{ "exampleKey": "exampleValue" }'; // Replace with your JSON payload
Uri := Uri.Uri('
https://your-api-url.com/endpoint')
; // Replace with your URL
HttpWebRequest := HttpWebRequest.Create(Uri);
HttpWebRequest.Method := 'POST';
HttpWebRequest.ContentType := 'application/json';
Encoding := Encoding.UTF8;
RequestStream := HttpWebRequest.GetRequestStream();
StreamWriter := StreamWriter.StreamWriter(RequestStream, Encoding);
StreamWriter.Write(JsonText);
StreamWriter.Close();
HttpWebResponse := HttpWebRequest.GetResponse();
ResponseStream := HttpWebResponse.GetResponseStream();
StreamReader := StreamReader.StreamReader(ResponseStream);
ResponseText := StreamReader.ReadToEnd();
MESSAGE('Response: %1', ResponseText);
END;
}
Developer by passion
0
RockWithNAV
Member
Posts:
1,155
2025-05-07
Too many ways.
Simple Get Method
HttpWebRequest := HttpWebRequest.HttpWebRequest;
Uri := Uri.Uri('
https://api.example.com/data')
;
HttpWebRequest := HttpWebRequest.Create(Uri);
HttpWebRequest.Method := 'GET';
HttpWebRequest.ContentType := 'application/json';
HttpWebResponse := HttpWebRequest.GetResponse();
StreamReader := StreamReader.StreamReader(HttpWebResponse.GetResponseStream());
ResponseText := StreamReader.ReadToEnd();
Message(ResponseText);
Variables you can use as mentioned as above
Thanks
Blog -
rockwithnav.wordpress.com/
Twitter -
https://twitter.com/RockwithNav
Facebook -
https://facebook.com/rockwithnav/
0
Sign In
or
Register
to comment.
Answers
OBJECT Codeunit 50100 ConsumeWebService
{
OBJECT-PROPERTIES
{
OnRun=BEGIN
CallExternalAPI();
END;
}
PROPERTIES
{
SingleInstance=Yes;
}
LOCAL PROCEDURE CallExternalAPI@1();
VAR
HttpWebRequest@1000 : DotNet "System.Net.HttpWebRequest";
HttpWebResponse@1001 : DotNet "System.Net.HttpWebResponse";
StreamReader@1002 : DotNet "System.IO.StreamReader";
RequestStream@1003 : DotNet "System.IO.Stream";
StreamWriter@1004 : DotNet "System.IO.StreamWriter";
Encoding@1005 : DotNet "System.Text.Encoding";
Uri@1006 : DotNet "System.Uri";
JsonText@1007 : Text[1024];
ResponseText@1008 : Text;
ResponseStream@1009 : DotNet "System.IO.Stream";
BEGIN
JsonText := '{ "exampleKey": "exampleValue" }'; // Replace with your JSON payload
Uri := Uri.Uri('https://your-api-url.com/endpoint'); // Replace with your URL
HttpWebRequest := HttpWebRequest.Create(Uri);
HttpWebRequest.Method := 'POST';
HttpWebRequest.ContentType := 'application/json';
Encoding := Encoding.UTF8;
RequestStream := HttpWebRequest.GetRequestStream();
StreamWriter := StreamWriter.StreamWriter(RequestStream, Encoding);
StreamWriter.Write(JsonText);
StreamWriter.Close();
HttpWebResponse := HttpWebRequest.GetResponse();
ResponseStream := HttpWebResponse.GetResponseStream();
StreamReader := StreamReader.StreamReader(ResponseStream);
ResponseText := StreamReader.ReadToEnd();
MESSAGE('Response: %1', ResponseText);
END;
}
Simple Get Method
HttpWebRequest := HttpWebRequest.HttpWebRequest;
Uri := Uri.Uri('https://api.example.com/data');
HttpWebRequest := HttpWebRequest.Create(Uri);
HttpWebRequest.Method := 'GET';
HttpWebRequest.ContentType := 'application/json';
HttpWebResponse := HttpWebRequest.GetResponse();
StreamReader := StreamReader.StreamReader(HttpWebResponse.GetResponseStream());
ResponseText := StreamReader.ReadToEnd();
Message(ResponseText);
Variables you can use as mentioned as above
Blog - rockwithnav.wordpress.com/
Twitter - https://twitter.com/RockwithNav
Facebook - https://facebook.com/rockwithnav/