Sharepoint Online REST中的URL长度限制

时间:2016-03-23 08:12:51

标签: rest sharepoint sharepoint-2013 sharepoint-online

当我尝试使用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个字符的网址限制?

由于

2 个答案:

答案 0 :(得分:0)

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

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

回到你的问题,你尝试过使用带有sp.js或spservices的Javascript对象模型吗?你可以在这里找到快速启动助手。

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

答案 1 :(得分:0)

不知道为什么限制为256个字符,但是您的其他问题。 你是正确的,这可以防止这种情况超过错误"你应该使用 / GetFileById

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

这个api只有在你的" site_url"由于拥有大型站点名称或大型站点层次深度,因此请求将失败。

问题中的这一行

"除了文档库是SitePages"

的某些情况

这不正确。此请求适用于所有库。

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