Power BI服务中Web.Contents调用fingertips API连接失败问题求助
Power BI Service与Desktop连接Fingertips API差异问题
我通过API调用向Power BI报表导入数据,数据源使用Json.Document(Web.Contents("https://fingertips.phe.org.uk/api/area_types"))。在Power BI Desktop中能正常获取和刷新数据,但发布到Power BI Service后,设置匿名/公开凭据时出现无法连接到远程服务器的错误,导致无法配置计划刷新。
我已参考过处理Web.Contents动态参数的相关内容,但本次调用无动态组件,且该URL在浏览器中可正常访问。我有其他类似API的报表在Service端运行正常,但这个Fingertips API的问题始终无法解决。
完整M代码如下:
let Source = Json.Document(Web.Contents("https://fingertips.phe.org.uk/api/area_types")), #"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error), #"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"Id", "Name", "Short", "Class", "Sequence", "CanBeDisplayedOnMap"}, {"Column1.Id", "Column1.Name", "Column1.Short", "Column1.Class", "Column1.Sequence", "Column1.CanBeDisplayedOnMap"}) in #"Expanded Column1"
可能的原因分析
- IP白名单限制:Fingertips API服务器可能限制了请求来源IP,Power BI Service的出站IP范围未被纳入白名单,而Desktop使用本地IP不在限制范围内。
- 请求头差异:Desktop和Service发起Web请求的默认请求头不同,Fingertips API可能对特定请求头(如User-Agent)有要求,Service的默认头未满足要求导致被拒绝。
- 网络环境拦截:Power BI Service所在网络的代理或防火墙规则拦截了对该API的请求,本地Desktop的网络环境无此限制。
- 访问策略差异:部分API会针对不同来源设置访问策略,Service的请求可能被识别为自动化请求而被拦截,Desktop的请求则被视为正常用户请求。
内容的提问来源于stack exchange,提问作者Pete Shep
相关产品推荐
相关产品推荐

