400 Bad Request при использовании POST-запроса для получения всех предметов - PullRequest
0 голосов
/ 01 октября 2019

Я довольно новичок в API и Power BI, поэтому прошу прощения за недостаток знаний.

Я пытаюсь перенести данные из моего приложения podio в Power BI с помощью Podio API через Power QueryРедактор. У меня проблема с тем, что я либо получаю 20 результатов (как стандарт с API Podio) с запросом GET, поэтому я не могу изменить ограничение. Или я использую POST-запрос и получаю 400 неверных запросов.

В этом коде я получаю 20 результатов.

let 
url = "https://api.podio.com/item/app/appid/",
  Source = Json.Document(Web.Contents(url, [Headers=[Authorization="OAuth2 AuthToken", #"Content-Type"="application/json"]]))
in
    Source

В этом коде я получаю 400 неверных запросов. Мое лучшее предположение состоит в том, что это не так в Text.ToBinary, так как я использую INT в теле, но я не уверен.

let 
url = "https://api.podio.com/item/app/appid/filter/",
body = "{
  ""limit"":500
}",
Parsed_JSON = Json.Document(body),
BuildQueryString = Uri.BuildQueryString(Parsed_JSON),
  Source = Json.Document(Web.Contents(url, [Headers=[Authorization="OAuth2 AuthToken", #"Content-Type"="application/json"], Content = Text.ToBinary("PostContent")]))
in
    Source

1 Ответ

0 голосов
/ 03 октября 2019

Прежде всего, если это на самом деле ваш код, Text.ToBinary просто отправляет строку «PostContent». Во-вторых, если это было предназначено для использования в качестве ссылки на заполнитель для BuildQueryString, я не думаю, что вы все равно захотите использовать Uri.BuildQueryString (это для преобразования определенных символов в экранированные URL-адреса варианты). Вы должны просто иметь возможность поместить текстовое тело в Text.ToBinary, например:

 Source = Json.Document(Web.Contents(url, [Headers=[Authorization="OAuth2 AuthToken", #"Content-Type"="application/json"], Content = Text.ToBinary(body)]))
...