Yufei created OLINGO-1614:
-----------------------------
Summary: Get metadata of dynamics 365 is very slow, it's much
slower than using HttpRequest
Key: OLINGO-1614
URL: https://issues.apache.org/jira/browse/OLINGO-1614
Project: Olingo
Issue Type: Question
Components: odata2-core, odata4-client
Affects Versions: (Java) V4 4.10.0
Environment: windows, java
Reporter: Yufei
Hi
This is the code to get metadata. time used is 28 seconds. It's too slow.
It's around 10 seconds if I use HttepoRequest and XML parsing with
DocumentBuilder.
Is there anyway to make it faster?
I checked with 5.0.0 and 4.10.0, it's the same.
Thank you.
//////////////////////////////////////////////////////////////////////////////
private static void getMetadata2(String accessToken)
{
// Create an OData client
ODataClient client = ODataClientFactory.getClient();
// Specify the OData service endpoint
String serviceRoot =
"https://orgc8a62a2c.api.crm.dynamics.com/api/data/v9.0/";
String metadataEndpoint = serviceRoot; // + "$metadata";
EdmMetadataRequest request =
client.getRetrieveRequestFactory().getMetadataRequest(metadataEndpoint);
// request.setAccept("application/xml"); // Set the desired media type
request.addCustomHeader(HttpHeader.AUTHORIZATION, "Bearer " +
accessToken); // Add the access token
// Execute the request
long startTime = System.nanoTime();
ODataRetrieveResponse<Edm> response = request.execute();
long endTime = System.nanoTime();
long elapsedTime = endTime - startTime;
// Convert elapsed time to seconds
double elapsedTimeInSeconds = (double) elapsedTime / 1e9;
// Print the elapsed time in seconds
System.out.println("Time consumed for request.execute() : " +
elapsedTimeInSeconds + " seconds");
int code = response.getStatusCode();
String ret = response.getStatusMessage();
Edm edm = response.getBody();
}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)