web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

No record found.

News and Announcements icon
Community site session details

Community site session details

Session Id :
Finance | Project Operations, Human Resources, ...
Unanswered

Consuming API by sending JSON data format to Third party app using bearer token Authentication by x++ code

(0) ShareShare
ReportReport
Posted on by

HI,

We got an error "The remote server returned an error: (400) Bad Request." while consuming API with third party app. below is my code;

class JSONDeSerialization
{
/// <summary>
/// Runs the class with the specified arguments.
/// </summary>
/// <param name = "_args">The specified arguments.</param>
public void consumeAPI()
{

str destinationUrl = 'https:/www.abc.com', responseJSON;
str token = 'xxxxxxxxx';
System.Net.HttpWebRequest request;
System.Net.HttpWebResponse response;
CLRObject clrObj;
System.IO.Stream requestStream, responseStream;
System.IO.StreamReader streamReader;
System.Exception ex;
System.Net.WebHeaderCollection httpHeader;
System.IO.Stream stream;
System.IO.Stream dataStream;
//System.Net.NetworkCredential Credentials;

try
{

new InteropPermission(InteropKind::ClrInterop).assert();
httpHeader = new System.Net.WebHeaderCollection();
clrObj = System.Net.WebRequest::Create(destinationUrl);
request = clrObj;
httpHeader.Add("Authorization", strfmt("Bearer %1", token));
request.set_KeepAlive(true);
request.set_ContentType("application/json");
request.set_Method("POST");
request.set_Headers(httpHeader);
response = request.GetResponse();
responseStream = response.getResponseStream();
streamReader = new System.IO.StreamReader(responseStream);
responseJSON = streamReader.ReadToEnd();
info(responseJSON);

//JSON deserialatisation

JSONObjectContract jSONObjectContract = FormJsonSerializer::deserializeObject(classnum(JSONObjectContract), responseJSON);
List listdata = new List(Types::Class);
listdata = jSONObjectContract.parmdata();
ListEnumerator listEnumerator = listdata.getEnumerator();
while(listEnumerator.moveNext())
{
EInvoiceDataContract jsonDataContract = listEnumerator.current();
info(strFmt("%1 %2",jsonDataContract.parmIGSTRate(), jsonDataContract.parmIGSTAmount()));
}

//JSON deserialisation

streamReader.Close();
responseStream.Close();
response.Close();

}
catch(Exception::CLRError)
{
ex = CLRInterop::getLastException().GetBaseException();
error(ex.get_Message());
}

}

}

I need help whether I followed correct code or did I missed anything in code?

Need your help with correct code.

Thanks.

I have the same question (0)
  • Alex VN Profile Picture
    1,994 on at

    Hi

    I can see you are using post request but only URL and bearer token provided, seems no body content for the post call. May I know what you are trying to archive?

    Also can you try get instead Post and see?

  • Community Member Profile Picture
    on at

    Hi,

    I have using body data in EInvoiceDataContract class from that I'm trying to POST json data. for GET method i got error "the remote server returned an error (405) method not allowed."

    pastedimage1657601479474v1.png

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Introducing the 2026 Season 1 community Super Users

Congratulations to our 2026 Super Stars!

Congratulations to our 2025 Community Spotlights

Thanks to all of our 2025 Community Spotlight stars!

Leaderboard > Finance | Project Operations, Human Resources, AX, GP, SL

#1
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 527 Super User 2026 Season 1

#2
Giorgio Bonacorsi Profile Picture

Giorgio Bonacorsi 473

#3
Adis Profile Picture

Adis 284 Super User 2026 Season 1

Last 30 days Overall leaderboard

Product updates

Dynamics 365 release plans