consume api in D365fo x++
consume api in D365fo x++
protected static str sendHttpRequest(str method, str url, str token, str jsonBody)
{
System.Text.UTF8Encoding encoding;
str responseJson;
RetailWebResponse response;
RetailWebRequest request;
System.IO.Stream requestStream, responseStream;
System.IO.StreamReader streamReader;
System.Byte[] bytes;
System.Net.WebHeaderCollection headers;
System.Net.WebException webException;
encoding = new System.Text.UTF8Encoding();
try
{
new InteropPermission(InteropKind::ClrInterop).assert();
request = RetailWebRequest::newUrl(url);
request.parmMethod(method);
request.parmContentType("application/json");
request.parmHeader("Learntron-Api-Token:" + token);
request.setContentBytes(encoding.GetBytes(jsonBody));
response = RetailCommonWebAPI::construct().getResponse(request);
Info(strFmt(response.parmData()));
}
catch (webException)
{
if (webException.get_Response() != null)
{
System.Net.HttpWebResponse httpWebResponse;
Notes responseString;
httpWebResponse = webException.get_Response() as System.Net.HttpWebResponse;
responseStream = httpWebResponse.GetResponseStream();
streamReader = new System.IO.StreamReader(responseStream);
responseString = streamReader.ReadToEnd();
error(strFmt("Error Response (JSON): %1", responseString));
// Close resources
streamReader.Close();
responseStream.Close();
httpWebResponse.Close();
}
else
{
// Log the exception message if no response
error(strFmt("WebException occurred: %1", webException.get_Message()));
}
}
return responseJson;
}
Comments
Post a Comment