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)

Reply via email to