当我尝试使用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 回答
不知道为什么限制是256个字符,但你的其他问题 . 你是正确的阻止"url lenght exceed error"你应该使用 /GetFileById
只有当您的“site_url”非常大时,此api才会使网址长度超过错误,无论是拥有大型网站名称还是大型网站层次深度,在这种情况下请求将失败 .
对于你问题中的这一行
“除了文档库是SitePages的一些情况”
这不正确 . 此请求适用于所有库 .
如需其他帮助,您也可以参考https://sharepoint.stackexchange.com/questions/194576/url-request-length-limit-when-using-rest-apis
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