Url Sharepoint Online REST 中的长度限制

Url length limitation in Sharepoint Online REST

当我尝试使用 REST 从 Sharepoint Online 下载文件时,通过调用 _api/web/GetFileByServerRelativeUrl,有时会出现错误: 此请求的 URL 长度超过配置的 maxUrlLength 值。

因此,由于这是 Sharepoint Online,无法更改此配置(它自己的限制也不清楚,为什么是 256 而不是 1024 ??,或者为什么要限制??) 所以,我试图找到解决这个问题的方法,发现我可以调用另一个 REST 方法:/_api/web/GetFileById 并提供唯一的 id,这在 95% 的情况下都有效,除了某些情况下文档库是 SitePages 或者文件的 URL 真的很大(即使我尝试使用 GetFileById 下载),这里的错误是 404 - 未找到。

因此,Web 服务允许访问和下载这些文件,但 Web 服务不适用于 OAuth 令牌(我的客户需要 OAuth)。

还有其他解决办法吗?或者有机会影响 256 个字符 url 的限制吗?

谢谢

SharePoint 有一定的软件边界,其中包括 URL 的长度。您可以在下面提到的 MSDN link 中找到 URL 路径长度限制的完整详细信息(这仍然适用于 SP2013)

https://technet.microsoft.com/en-in/library/ff919564(v=office.14).aspx

回到您的问题,您是否尝试过将 Javascript 对象模型与 sp.js 或 spservices 一起使用?您可以在这里找到快速入门助手。

https://msdn.microsoft.com/library/jj163201.aspx#BasicOps_FileTasks

不知道为什么限制是 256 个字符,但对于您的其他问题。 你是正确的防止这个 "url lenght exceed error" 你应该使用 /GetFileById

https://site_url/_api/web/GetFileById('file_unique_id')

此 api 仅当您的 "site_url" 非常大时才会出现 url 长度超出错误.

对于你问题中的这一行

"except some case where document library is SitePages"

这不是 correct.This 适用于所有图书馆的请求。

其他帮助也可以参考https://sharepoint.stackexchange.com/questions/194576/url-request-length-limit-when-using-rest-apis