Sal*_*vat 0 api rest sharepoint
我使用HTTP post方式上传文件,如下图:
POST https://sitename.sharepoint.com/sites/subsitename/pagename/_api/web/getfolderbyserverrelativepath(decodedurl=@t)/files/addusingpath(overwrite=true,decodedurl=@f)?@t='docs/%24%26%2B%2C%3B%3D%40%23%25%7B++++%7D%5E%7E%5B%5D%60'&@f='new.docx' HTTP/1.1
Authorization: "Bearer " + accessToken
accept: "application/json;odata=verbose"
content-type: "application/json;odata=verbose"
Run Code Online (Sandbox Code Playgroud)
它适用于任何文件和文件夹,但文件夹名称中带有百分号(“%”)的文件夹除外。如果目标文件夹名称包含百分号(“%”),则会返回错误并显示消息:
{"error":{"code":"-2147024893, System.IO.DirectoryNotFoundException","message":{"lang":"en-US","value":"File Not Found."}}}
Run Code Online (Sandbox Code Playgroud)
因此,我尝试使用另一种post方法:
POST https://sitename.sharepoint.com/sites/subsitename/pagename/_api/web/getfolderbyserverrelativepath(decodedurl=@t)/files/addstubusingpath(decodedurl=@f)?@t='docs/%24%26%2B%2C%3B%3D%40%23%25%7B++++%7D%5E%7E%5B%5D%60'&@f='new.docx' HTTP/1.1
Authorization: "Bearer " + accessToken
accept: "application/json;odata=verbose"
content-type: "application/json;odata=verbose"
Run Code Online (Sandbox Code Playgroud)
但我得到了如下回复:
{"error":{"code":"-1, Microsoft.SharePoint.Client.InvalidClientQueryException","message":{"lang":"en-US","value":"Not well formatted JSON stream."}}}
Run Code Online (Sandbox Code Playgroud)
这是怎么回事?
问题在于将空格符号编码为“%20”而不是“+”,并使用下面的查询创建文件夹:
/_api/web/folders/AddUsingPath(decodedurl="folder%20name")
Run Code Online (Sandbox Code Playgroud)
然后通过查询将文件添加到文件夹中:
_api/web/getfolderbyserverrelativepath(decodedurl='docs/%24%26%2B%2C%3B%3D%40%23%25%7B%20%20%20%20%7D%5E%7E%5B%5D%60')/files/AddUsingPath(overwrite=true,decodedurl='new.docx')
Run Code Online (Sandbox Code Playgroud)
现在效果很好。
| 归档时间: |
|
| 查看次数: |
9232 次 |
| 最近记录: |