Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
7 years ago
Solved

REST API / Invalid JSON Request

Hello everyone,

i am trying to connect the Power BI Client to a REST API by a Dataset.

The Dataset i am tryin to run, looks like this:

 

 

I alway get the error, that says, this is an invalid request.

I dont get what there is been missing or where the error is? I didnt find anything through researches.

Am I Missing the Authentification (X-RPC-Auth-Username / X-RPC-Auth-Password / X-RPC-Auth-Session)?

If yes, where do i have to insert it?

 

I am very thankful for your help,

Regards

  • In the body step of your query, it looks like you're passing a JSON object in the body of the request. A JSON parser would recognize the values for jsonrpc and id as numbers instead of strings. It would also have trouble parsing the value you have for method; it wouldn't recognize it as a string.

    I'm not sure what the structure of the request should look like, but it's very likely these values should all be strings.

    Try this instead:

    let
        url = "...",
        bodyContent = [ jsonrpc = "2.0", method = "cmdb.objects.read", params = [apikey = APIKEY], id = "1" ],
        body = Json.FromValue(bodyContent),
        Source = Json.Document(Web.Contents(url, [Headers = [#"Content-Type" = "application/json"], Content = body] ))
    in
        Source

    Note: I assume you have the value for APIKEY defined properly elsewhere.

    If that doesn't work, try making the same request with Postman.  Also, what does the API documentation say about that -32600 status code?

     

2 Replies

  • In the body step of your query, it looks like you're passing a JSON object in the body of the request. A JSON parser would recognize the values for jsonrpc and id as numbers instead of strings. It would also have trouble parsing the value you have for method; it wouldn't recognize it as a string.

    I'm not sure what the structure of the request should look like, but it's very likely these values should all be strings.

    Try this instead:

    let
        url = "...",
        bodyContent = [ jsonrpc = "2.0", method = "cmdb.objects.read", params = [apikey = APIKEY], id = "1" ],
        body = Json.FromValue(bodyContent),
        Source = Json.Document(Web.Contents(url, [Headers = [#"Content-Type" = "application/json"], Content = body] ))
    in
        Source

    Note: I assume you have the value for APIKEY defined properly elsewhere.

    If that doesn't work, try making the same request with Postman.  Also, what does the API documentation say about that -32600 status code?

     

    • Anonymous's avatar
      Anonymous
      Not applicable

      Sorry for the delay and a big thank you tonmcg !!! It works with the square brackets