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

Power BI中Power Query Post请求报400错误,Postman正常问题排查

问题分析与解决方案

嘿,我来帮你搞定这个400错误的问题!你用Postman能成功但Power Query报错,核心原因是请求头声明的Content-Type和实际发送的请求体格式不匹配,服务器收到后识别不了,就返回了Bad Request。

错误根源拆解

你在代码里设置了Headers = [#"Content-Type"="application/x-www-form-urlencoded"],这告诉服务器“我发的是表单编码的键值对数据”,但你的body却是一个JSON字符串:

body = "{ \"grant_type\": \"password\", \"client_id\": \"XXXXXXXX\", ... }"

这种矛盾的格式就是服务器拒绝请求的原因——它在等表单格式的数据,结果收到了JSON,自然解析失败。而Postman里你应该是选择了x-www-form-urlencoded选项直接输入键值对,所以能正常工作。

修正后的Power Query代码

我们把请求体改成服务器期望的表单格式,用Uri.BuildQueryString来生成规范的编码内容,避免手动拼接出错:

let
    url = "https://XXXXXXXXXX/OAuth/Token",
    // 用键值对定义参数,而非JSON字符串
    formData = [
        grant_type = "password",
        client_id = "XXXXXXXX",
        client_secret = "XXXXXXXXX",
        redirect_uri = "https://XXXXXXX/home/",
        username = "user",
        password = "password"
    ],
    // 将键值对转换为x-www-form-urlencoded格式的字符串
    body = Uri.BuildQueryString(formData),
    Source = Json.Document(Web.Contents(url, [
        Headers = [#"Content-Type"="application/x-www-form-urlencoded"],
        Content = Text.ToBinary(body)
    ])),
    #"Converted to Table" = Record.ToTable(Source)
in
    #"Converted to Table"

另一种可能(如果服务器支持JSON格式)

如果你的Postman测试用的是Raw JSON格式,那你需要把请求头的Content-Type改成application/json,同时保持body的JSON格式:

let
    url = "https://XXXXXXXXXX/OAuth/Token",
    body = "{ ""grant_type"": ""password"", ""client_id"": ""XXXXXXXX"", ""client_secret"": ""XXXXXXXXX"", ""redirect_uri"": ""https://XXXXXXX/home/"", ""username"": ""user"", ""password"": ""password"" }",
    Source = Json.Document(Web.Contents(url, [
        Headers = [#"Content-Type"="application/json"],
        Content = Text.ToBinary(body)
    ])),
    #"Converted to Table" = Record.ToTable(Source)
in
    #"Converted to Table"

不过这种情况概率较低,毕竟你Postman能成功,大概率是用了表单编码的方式。

验证小技巧

你可以打开Postman的「Code」功能(右上角),选择「Power Query」格式,直接对比它生成的代码和你写的代码,就能快速定位差异啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:21:17