Power BI调用Algorithmia API的curl转Power Query M报404错误求助
问题排查与修复方案
错误原因汇总
- Authorization头冗余引号:curl命令里的单引号是shell环境下的参数分隔符,不属于请求头内容,你写的auth_key多包裹了一层单引号,会导致鉴权失败。
- POST请求体传参错误:Web.Contents的
Query参数是用来构造URL后缀的查询参数键值对的,不是用来传POST请求体的,-d对应的POST数据应该放在Content字段中。 - 查询参数缺失:原curl请求的
timeout=300属于URL查询参数,没有在代码中配置。 - 请求体格式错误:原POST内容是JSON格式的字符串
"Test",你写的内容多了一层单引号,不符合JSON规范。
修复后的Power Query M代码
let url = "https://api.algorithmia.com/v1/algo/tone/DemoAlgo/0.1.0", auth_key = "Simple simAOH0ixjNUwV/qBMh1BW1fbKH1", headers = [ #"Authorization" = auth_key, #"Content-Type" = "application/json" ], // 配置URL查询参数 queryParams = [timeout = "300"], // 构造POST请求体,对应curl的-d参数,Text.ToBinary转成二进制格式 postBody = Text.ToBinary("""Test"""), webdata = Web.Contents(url, [ Headers = headers, Query = queryParams, Content = postBody ]), response = Json.Document(webdata) in response
额外验证提示
如果修改后还是报错,可以按以下步骤排查:
- 确认Algorithmia上的算法路径
tone/DemoAlgo/0.1.0是否正确,路径拼写错误是404的常见诱因 - 确认你的API Key有效,没有权限限制
- 确认Power BI的数据源权限配置中,该API地址的匿名/凭据权限已经正确授予
内容的提问来源于stack exchange,提问作者user15235239
相关产品推荐
相关产品推荐

