因为您似乎想将此发送为application/json
,我想你会在你的代码中改变这一点:
Content = Text.ToBinary(BuildQueryString)
to:
Content = Text.ToBinary(body)
然后你还可以删除下面的行(因为你不需要它们):
Parsed_JSON = Json.Document(body),
BuildQueryString = Uri.BuildQueryString(Parsed_JSON),
我认为你不需要Uri.BuildQueryString
除非你想发送为application/x-www-form-urlencoded
(即 URL 编码的键值对)。
无关:如果有帮助,您可以在 M 中构建结构,然后使用JSON.FromValue
将结构转换为字节,可以直接放入 POST 正文中。未经测试的示例如下。
let
body = [
page = "1",
pageSize = "100",
requestParams = [
deviceUids = {
"xxx-yyy-xxx-yyyy-xxxx",
"yyy-xxx-yyy-xxxx-yyyy",
"aaa-bbb-aaa-bbbb-aaaa",
"ccc-ddd-ccc-dddd-cccc"
},
entityColumns = {
[
entityId = "144",
joinColumnName = "device_uid",
columnName = "device_random_date"
]
},
columnNames = {
"ts",
"device_uid",
"1",
"32",
"55",
"203",
"204"
},
startUnixTsMs = "1583413637000",
endUnixTsMs = "1583413640000",
columnFilters = {
[
filterType = "eq",
columnName = "55",
value = "1234"
]
},
sortOrder = {
[
column = "ts",
order = "DESC"
],
[
column = "55",
order = "ASC"
]
},
entityFilters = {
[
entityId = "144",
entityEntryIds = {
"12345-221-232-1231-123456"
}
]
}
]
],
Quelle = Json.Document(
Web.Contents(
"http://localhost:8101/device-data-reader-api/read-paginated/xxx-xxx-yyyy-yyyy",
[
Headers = [#"Content-Type" = "application/json"],
Content = Json.FromValue(body)
]
)
)
in
Quelle
它可能看起来有点奇怪(因为 M 使用[]
代替{}
, {}
代替[]
and =
代替:
),但只是提及以防有帮助。