【问题标题】:Url length limitation in Sharepoint Online RESTSharepoint Online REST 中的 URL 长度限制
【发布时间】:2016-07-10 10:16:20
【问题描述】:

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

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

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

还有其他解决方案吗?还是有机会影响 256 个字符的 url 限制?

谢谢

【问题讨论】:

    标签: rest sharepoint sharepoint-2013 sharepoint-online


    【解决方案1】:

    不知道为什么限制为 256 个字符,但您的其他问题。 您应该使用 /GetFileById

    来防止这种“url 长度超过错误”是正确的
    https://site_url/_api/web/GetFileById('file_unique_id')
    

    仅当您的“site_url”非常大时,此 api 才会给出 url 长度超出错误,无论是由于站点名称大还是站点层次结构深度大,在这种情况下请求将失败。

    对于您问题中的这一行

    "除了文档库是 SitePages 的某些情况"

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

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

    【讨论】:

      【解决方案2】:

      SharePoint 有一定的软件边界,包括 URL 的长度。您可以在下面提到的 MSDN 链接中找到有关 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

      【讨论】:

      • 您好,感谢您的回复,为什么 JavaScript 比 Java 更好用?有什么区别 ?他们调用相同的 API。谢谢
      猜你喜欢
      • 1970-01-01
      • 2019-02-08
      • 1970-01-01
      • 2021-09-23
      • 1970-01-01
      • 2015-11-22
      • 2012-12-01
      • 2010-09-19
      • 2023-03-19
      相关资源
      最近更新 更多