使用 POST 请求获取所有项目时出现 400 Bad Request
400 Bad Request when using POST request to get all items
我对 API 和 Power BI 很陌生,所以请原谅我的知识不足。
我正在尝试使用 Podio API 通过 Power Query Editor 从我的跑道应用程序中获取数据到 Power BI。我遇到的问题是,我要么通过 GET 请求获得 20 个结果(这是 Podio API 的标准),因此我无法更改限制。或者我使用 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
首先,如果这实际上是您的代码,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)]))
我对 API 和 Power BI 很陌生,所以请原谅我的知识不足。
我正在尝试使用 Podio API 通过 Power Query Editor 从我的跑道应用程序中获取数据到 Power BI。我遇到的问题是,我要么通过 GET 请求获得 20 个结果(这是 Podio API 的标准),因此我无法更改限制。或者我使用 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
首先,如果这实际上是您的代码,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)]))