Yufei created OLINGO-1615:
-----------------------------
Summary: Get meatadata with EdmMetadataRequest throws exception
Key: OLINGO-1615
URL: https://issues.apache.org/jira/browse/OLINGO-1615
Project: Olingo
Issue Type: Bug
Components: odata4-client
Reporter: Yufei
Hi
I want to get meta data from microsoft dynamics 365, it throws exception saying:
(0x80060888) The request URI is not valid. The segment '$metadata' must be the
last segment in the URI because it is one of the following: $ref, $batch,
$count, $value, $metadata, a named media resource, an action, a noncomposable
function, an action import, a noncomposable function import, an operation with
void return type, or an operation import with void return type. [HTTP/1.1 404
Not Found]
This is my code:
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
try {
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 = response.getBody();
} catch(Exception e) {
e.printStackTrace();
}
}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)