我正在使用一个网站,[[需要使用Webform.Post方法提交其API密钥和查询数据。我可以在Python,C#中使用它,甚至可以构造并执行一个cURL命令,该命令返回Excel可以解析的可用JSON文件。我还使用Postman验证我的参数,使用所有这些方法,一切看起来都不错。但是,我的目标是构建可在Excel中使用但无法通过PowerBi Query中的该查询语法的查询表单。
目前,我正在做一个简单的查询。该查询看起来像这样:let
url_1 = "https://api.[SomeWebSite].com/api/v1.0/search/keyword?apiKey=blah-blah-blah",
Body_1 = {
"SearchByKeywordRequest:
{
""keyword"": ""Hex Nuts"",
""records"": 0,
""startingRecord"": 0,
""searchOptions"": Null.Type,
""searchWithYourSignUpLanguage"": Null.Type
}"
},
Source = WebMethod.Post(url_1,Body_1)
in
Source
ScreenSnip showing valid syntax它产生以下错误:
Expression.Error: We cannot convert the value "POST" to type Function. Details: Value=POST Type=[Type]
ScreenSnip of Error as it appears in PowerQuery Advanced Editor过去两天中,我大部分时间都在尝试使用此方法或文档查找示例。 Microsoft文档简单说明了以下内容:
WebMethod.Post 04/15/2018 2 minutes to read About Specifies the POST method for HTTP.
https://docs.microsoft.com/en-us/powerquery-m/webmethod-post这无济于事,到目前为止,我发现的仅有的帖子批评张贴者未使用GET与POST。我会这样做,但是我正在使用的网站
NOT支持它。如果有人可以请我指向说明我做错事情的文档或提出解决方案,我将不胜感激。
WebMethod.Post
不是函数。它是一个常量文本值“ POST”。您可以使用Web.Contents
或WebAction.Request
功能发送POST请求。发布JSON并接收JSON的简单示例:
let
url = "https://example.com/api/v1.0/some-resource-path",
headers = [#"Content-Type" = "application/json"],
body = Json.FromValue([Foo = 123]),
source = Json.Document(Web.Contents(url, [Headers = headers, Content = body])),
...