Sharepoint Online REST奇怪的错误400-“值不能为空参数名称:键”

问题描述

自2020年9月9日起,我们开始在REST API调用获取奇怪的错误,以获取站点及其列表的列表:

GET <site url>_api/web?$expand=webs,lists,AllProperties,ThemeInfo,SiteUsers,RoleDeFinitions&$select=*,webs/Url,lists/Id,lists/Title,lists/Description,lists/BaseType,lists/BaseTemplate,lists/Hidden,lists/Language,lists/ItemCount,lists/Created,lists/TemplateFeatureId,lists/CurrentChangetoken,SiteUsers/id,SiteUsers/Title,SiteUsers/LoginName,AllProperties/DesignPreviewThemedCssFolderUrl

API调用已经工作了几年,但是现在已经坏了,在我们的许多客户(不是全部,但大约30%)中,我们看到了此错误

{"error":{"code":"-2147467261,System.ArgumentNullException","message":{"lang":"en-US","value":"Value cannot be null.Parameter name: key"}}}

现在,我们不需要任何参数“ key”,所以不确定为什么它为空,但是我发现如果删除了最后一部分

AllProperties/DesignPreviewThemedCssFolderUrl

请求现在看起来是:

GET <site url>_api/web?$expand=webs,SiteUsers/LoginName

然后此请求返回正确,没有任何错误

@Sharepoint团队,也许部署了一些新版本并引入了一些行为更改/错误? 请指教, 谢谢

解决方法

所以这可能是因为SharePoint中的URL长度最大限制。 SharePoint Online中的路径长度限制为400个字符。 SP 2013本地中的路径长度限制为255个字符。

尝试删除不必要的列或使用URL缩短程序来缩短URL。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...