Forum Discussion
Error in getting POST request in an API
- 6 years ago
You could simply using different code.
This first example you've posted contained wrong brackets.
Why is that?
Could it be that JSON you've been using in Postman has different nesting structure?
Must your -1 be a text instead of a number?
Honestly, I've been there a couple of times to recognize that a simple typo is throwing things off.
Very had to believe that Power Query is the issue here.
if you're body shall contain the full JSON record that you've built, then you should reference that directly instead of trying to convert it to a string in step "BuildQueryString". (You'd probably have to convert the -1 back to a number then)
Something like this:
let
url = URL,
body = "{#(cr)#(lf) ""limit"":-1,#(cr)#(lf) ""sort"":{#(cr)#(lf) ""option"":""ASC"",#(cr)#(lf) ""field"":[#(cr)#(lf) ""FlightDate""#(cr)#(lf) ],#(cr)#(lf) ""parameters"":[#(cr)#(lf) {#(cr)#(lf)#(cr)#(lf) }#(cr)#(lf) ],#(cr)#(lf) ""range"":[#(cr)#(lf) {#(cr)#(lf) ""FlightDate"":{#(cr)#(lf) ""from"":""02/14/2020 14:02"",#(cr)#(lf) ""to"":""02/18/2020 00:02""#(cr)#(lf) }#(cr)#(lf) }#(cr)#(lf) ]#(cr)#(lf) }}",
Parsed_JSON = Json.Document(body),
Source = Json.Document(Web.Contents(url, [Headers=[#"Content-Type"="application/json"],Content = Parsed_JSON]))
in
Source
- gilbertendaya6 years agoHelper IV
Thanks ImkeF
I tried the one that you suggested, but below error occurred.Expression.Error: We cannot convert a value of type Record to type Binary.
Details:
Value=[Record]
Type=[Type]- ImkeF6 years agoCommunity Champion
Oh sorry, I missed the magic function Json.FromValue: https://www.thebiccountant.com/2018/06/05/easy-post-requests-with-power-bi-and-power-query-using-json-fromvalue/
Source = Json.Document( Web.Contents(url, Headers=[#"Content-Type"="application/json"],Content = Json.FromValue(Parsed_JSON)]))- gilbertendaya6 years agoHelper IV
Hi Sir ImkeF
I will continue to say thank you for always answering my queries 🙂
I tried to change the Source line with the one that you've sent but there is an error in advanced editor:Source = Json.Document( Web.Contents(url, Headers=[#"Content-Type"="application/json"],Content = Json.FromValue(Parsed_JSON)]))
I think this is due to the ] in the end.. there should be [ before the word headers, right?Source = Json.Document( Web.Contents(url, [Headers=[#"Content-Type"="application/json"],Content = Json.FromValue(Parsed_JSON)]))
But when I did this, 400 error occurs..
DataSource.Error: Web.Contents failed to get contents from '<URL>' (400): Bad Request
Details:
DataSourceKind=Web
DataSourcePath=<URL>
Url=<URL>