我已经下载了一个示例,该示例显示了我的OneDrive for Bussiness中“与大家共享”文件夹中的文件。它工作正常! 但是,当我尝试创建像this documentation这样的文件夹或文件(没有内容)时,响应变为BadRequest。
请求如下:
string requestUrl = String.Format(CultureInfo.InvariantCulture, "{0}/files", serviceInfo.ApiEndpoint);
// Prepare the HTTP request:
using (HttpClient client = new HttpClient())
{
Func<HttpRequestMessage> requestCreator = () =>
{
HttpRequestMessage request = new HttpRequestMessage( HttpMethod.Post, requestUrl);
request.Headers.Add("Accept", "application/json;odata.metadata=full");
request.Content = new StringContent(@"{'__metadata':{'type':'MS.FileServices.Folder'},Name:'TestFolder'}");
request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
return request;
};
}
响应是BadRequest。 我认为我的问题在于“__metadata”的json值。这是对的吗?我在哪里可以找到实施此操作的实际示例?
提前致谢!
编辑:将API端点从“/ _api / web / getfolderbyserverrelativeurl('Documents')/ files”更改为“_api / files”,错误变为:“属性'__metadata'确实类型'MS.FileServices.FileSystemItem'上不存在。确保只使用由类型定义的属性名称。“
我认为我在这方面做得很好。但是,我仍然存在问题。答案 0 :(得分:1)
我不确定这对您是否有任何帮助,因为这涉及oneDrive而不是oneDrive for business。 这些文件也令人困惑:)
根据documentation请求应如下:
POST https://apis.live.net/v5.0/me/skydrive
Authorization: Bearer ACCESS_TOKEN
Content-Type: application/json
{
"name": "My example folder"
}
如果您在标题中看到有授权访问令牌
我没有看到您向服务器发送了任何访问令牌。这就是你提出错误请求的原因。
答案 1 :(得分:0)
我正在尝试下面的方法在SP中创建一个文件夹,它对我有用。希望它也对您有用。
使用SharePoint Web API创建文件夹-
POST https://<Domain>.sharepoint.com/_api/web/folders
Accept: "application/json;odata=verbose"
Content-Type: "application/json"
{
"ServerRelativeUrl": "/Shared Documents/<Folder-Name>"
}