I have consume the custom api in postman using /NTLM authentication/ for Business central On-premise
procedure CallAPI()
var
Content: HttpContent;
ContentHeaders: HttpHeaders;
IsSuccessful: Boolean;
HttpClient: HttpClient;
ResponseMessage: HttpResponseMessage;
JToken: JsonToken;
JObject: JsonObject;
JValue: JsonValue;
RequestHeaders: HttpHeaders;
RequestMessage: HttpRequestMessage;
ResponseText: Text;
begin
// HttpClient.UseWindowsAuthentication('username', 'password');
Content.GetHeaders(contentHeaders);
RequestMessage.GetHeaders(RequestHeaders);
RequestHeaders.Add('Username', 'username');
RequestHeaders.Add('Password', 'password');
// ContentHeaders.Add('Username', 'username');
// ContentHeaders.Add('Password', 'password');
// RequestHeaders.Add('request-id', Format(Random(9999)));
// RequestHeaders.Add('OData-Version', '4.0');
// RequestHeaders.Add('Access-Control-Allow-Credentials', 'true');
// RequestMessage.SetRequestUri(Rec./API URL/);
RequestMessage.SetRequestUri('http://localhost:7048/BC220/ODataV4/Company(''CRONUS%20India%20Ltd.'')/CustomAPI');
RequestMessage.Method('GET');
IsSuccessful := HttpClient.Send(RequestMessage, ResponseMessage);
if not IsSuccessful then
Error('Status Code: %1// Reason : %2', ResponseMessage.HttpStatusCode, ResponseMessage.ReasonPhrase)
else begin
ResponseMessage.Content.ReadAs(ResponseText);
JObject.ReadFrom(ResponseText);
Message(ResponseText);
end;
end;
Your efforts are appreciated.