You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerBI调用带JSON体的GET接口返回404,Postman可正常请求

解决方案:PowerBI调用带请求体的GET接口问题

问题根源分析

  1. 请求方法被自动修改:PowerBI的Web.Contents函数默认在包含Content参数时,会将请求方法从GET转为POST。你的接口只接受GET请求,因此服务器返回404且未收到请求。
  2. JSON序列化错误:你直接将JSON字符串传给Json.FromValue,导致函数把整个字符串转成了带双引号包裹的JSON值(如"{\"key1\":\"value1\"}"),服务器解析时识别为无效JSON结构,返回400错误。

修正后的M语言代码

let
    url = "https://website.com/api/v1/endpoint",
    // 用PowerBI记录类型定义请求体,避免手动拼接JSON的转义问题
    bodyRecord = [key1 = "value1", key2 = "value2"],
    // 让M语言自动完成JSON序列化
    body = Json.FromValue(bodyRecord),
    headers = [#"Content-Type" = "application/json"],
    // 显式指定请求方法为GET,防止被自动转为POST
    response = Web.Contents(url, [
        Content = body,
        Headers = headers,
        Method = "GET"
    ]),
    Source = Json.Document(response)
in
    Source

关键修改说明

  • 强制GET请求:通过Method = "GET"明确指定请求方法,避免PowerBI自动切换为POST,确保请求能匹配到目标接口。
  • 正确序列化JSON:使用PowerBI原生的记录类型([key1 = "value1", ...])配合Json.FromValue,由系统自动处理JSON的序列化和转义,生成符合服务器要求的JSON对象请求体。

额外注意事项

如果仍有问题,检查PowerBI的数据源隐私设置:在「选项和设置」→「数据源设置」中,将该接口的隐私级别设置为「公共」,避免因隐私规则导致请求被拦截。

内容的提问来源于stack exchange,提问作者Samh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 17:07:16