摘要:我正在研究在ISV应用程序中嵌入Power BI报告,当我尝试调用api端点来获取报告的详细信息时,它会响应400 Bad Request。我直接调用Power BI API而不使用SDK,因为microsoft尚未正式发布基于PowerBI SDK for Java的应用程序。另外,为了进行调试,我使用了另一个.net应用程序,该应用程序使用PowerBI SDK对相同的工作区进行相同的API调用,并且没有问题。
所有其他API端点,例如“列出所有工作区”,“获取工作区详细信息”,“列出工作区中的所有仪表板”,甚至“列出工作区中的所有报告”都可以按要求进行响应而不会出现问题,但此处列出的API端点:
Power BI get report embedding details using 'workspace_id' and 'report_id'
使用看似正确的凭据和请求来回复400 Bad请求。
连接应用程序上下文:
发布和调试
调试:
授权:承载身份验证令牌
User-Agent:FxVersion / 4.7.2117.0 Windows_7_Enterprise / 6.1.7601 Microsoft.PowerBI.Api.V2.PowerBIClient / 2.0.2.17225
主持人:api.powerbi.com
cache-control:no-cache
Postman-Token:some-token
授权:承载身份验证令牌
User-Agent:PostmanRuntime / 7.1.1
接受: /
主持人:api.powerbi.com
答案 0 :(得分:3)
这是由Accept
HTTP标头引起的。 Microsoft的REST方法不支持它。
尝试:
curl -XGET
"https://api.powerbi.com/v1.0/myorg/groups/{groupId}/reports/{reportId}" -i -H
"Authorization: Bearer {token}" -H "Accept:"
-H "Accept:"
将禁用此HTTP标头。 (默认情况下curl发送Accept: * / *
)