如何通过邮递员使用rest调用在SharePoint 2019上创建具有%character的文件夹?

如何通过邮递员使用rest调用在SharePoint 2019上创建具有%character的文件夹?,rest,sharepoint,postman,sharepoint-2019,Rest,Sharepoint,Postman,Sharepoint 2019,我想在SharePoint 2019上创建一个%character的文件夹,我正在使用以下调用: POST http://<site>/_api/web/folders { "__metadata": { "type": "SP.Folder" }, "ServerRelativeUrl": "/SP 2019/Folder%" } POSThttp:///_api/web/folders { “_元数据”:{ “类型”:“SP文件夹” }, “ServerR

我想在SharePoint 2019上创建一个%character的文件夹,我正在使用以下调用:

POST http://<site>/_api/web/folders

{
  "__metadata": {
    "type": "SP.Folder"
  },
  "ServerRelativeUrl": "/SP 2019/Folder%"
}
POSThttp:///_api/web/folders
{
“_元数据”:{
“类型”:“SP文件夹”
},
“ServerRelativeUrl”:“/SP 2019/文件夹%”
}
但这正在创建文件夹%25,而不是文件夹%


如果我将JSON中的字符更改为#,它将创建一个带有“#”字符的文件夹。

我们传入的值是“%”,但似乎服务器逃逸了它。

作为一种解决方法,您可以创建一个事件接收器(添加了项)。创建文件夹时,如果其名称包含“%25”,请重命名它。 示例代码:

public override void ItemAdded(SPItemEventProperties properties)
    {

        SPFolder folder = properties.ListItem.Folder;
        string name= folder.Name;
        if (name.Contains("%25")) {
            string newName=name.Replace("%25", "%");
            folder.Item["Name"] = newName;
            folder.ParentWeb.AllowUnsafeUpdates = true;
            folder.Item.Update();
            folder.ParentWeb.AllowUnsafeUpdates = false;
        }
        base.ItemAdded(properties);
    }
致以最良好的祝愿

阿莫斯

这就行了

POST http://<site>/_api/web/folders/AddUsingPath(decodedurl='Path')
POSThttp:///_api/web/folders/AddUsingPath(decodedurl='Path')
它将创建一个包含%character的文件夹。它是为SP Online引入的,但也适用于SP 2019

我遇到的问题是api在两种情况下返回
400错误请求
: a) 该文件夹已存在。 b) URL的格式不正确

我需要区分这两者

你可以看一下这个,以便进一步参考