SharePoint REST API调用含#文件夹报错400的解决咨询
问题原因
#是URL中的锚点标记符,HTTP请求发送时,客户端会自动截断#及其后续内容,导致SharePoint API收到的路径不完整(变成Shared Documents/test test/test),从而返回400无效表达式错误。
解决步骤
1. 对特殊字符进行URL编码
将路径中的#替换为对应的URL编码值%23,修改后的API请求应为:
GET _api/web/GetFolderByServerRelativeUrl('Shared Documents/test test/test%23')
2. Power Automate 中的动态处理方案
如果文件夹路径是用户输入或动态获取的,不要直接拼接,通过表达式处理:
- 全路径编码:使用
encodeUriComponent函数自动编码所有URL特殊字符(包括空格、#等),示例表达式:
编码后结果为encodeUriComponent('Shared Documents/test test/test#')Shared%20Documents/test%20test/test%23,直接代入API请求即可。 - 单独替换#号:如果只需要处理#,用
replace函数针对性替换:
比如用户输入的路径存在变量里,就把变量替换后再拼到API URL中。replace(动态路径变量, '#', '%23')
3. 验证
修改请求后重新执行,API就能正确识别带#号的文件夹路径,返回文件夹存在状态或详情。
内容的提问来源于stack exchange,提问作者John John
相关产品推荐
相关产品推荐

