使用Microsoft Graph API获取最近文件列表时如何得到未编码文件路径
关于Microsoft Graph API返回编码webDavUrl的问题解答
结论
目前Microsoft Graph API没有提供任何请求参数或配置项,可以让GET /me/drive/recent接口直接返回未经过URL编码的webDavUrl属性值,你需要自行对返回的编码字符串做解码处理。
说明
- 接口返回URL编码的路径是遵循RFC 3986 URL规范的默认行为:当路径中包含空格、非ASCII字符(如示例中的带变音符号的特殊字符)时,编码处理可以避免特殊字符导致的URL可用性问题,属于HTTP接口的通用实现逻辑。
- 各类编程语言都有内置的标准方法可直接完成解码,常用场景示例如下:
- JavaScript/TypeScript:调用
decodeURIComponent(encodedUrl)即可完成解码 - Python:调用
urllib.parse.unquote(encoded_url)即可完成解码 - Java:调用
URLDecoder.decode(encodedUrl, StandardCharsets.UTF_8)即可完成解码
- JavaScript/TypeScript:调用
- 你提供的示例编码路径经过解码后,得到的原始路径为:
sitename/Documents/Microsoft Teams Chat Files/Inlämningsuppgift - test test.pdf
注意事项
如果解码后的路径需要用于发起HTTP请求,建议发起请求前再次做URL编码处理,避免特殊字符导致请求失败;仅在需要给用户展示路径文本的场景下使用解码后的内容即可。
内容的提问来源于stack exchange,提问作者Filip Huhta
相关产品推荐
相关产品推荐

