Tôi gặp sự cố khi đổi tên thư mục bên trong thư viện tài liệu bằng cách sử dụng REST api do SharePoint 2013 cung cấp. Đây là mã tôi đang sử dụng bên dưới.Không thể đổi tên thư mục trong SharePoint 2013 bằng cách sử dụng REST
string digest = String.Empty;
using (var response = await connector.HttpClient.PostAsync("_api/contextinfo", null, token))
{
response.EnsureSuccessStatusCode();
var obj = await response.ReadObject("d");
digest = obj["GetContextWebInformation"].Value<string>("FormDigestValue");
}
using (var request = new HttpRequestMessage(HttpMethod.Post, String.Format("/_api/Web/GetFolderByServerRelativeUrl('{0}')", operation.Path.FullName)))
{
request.Headers.Add("X-HTTP-Method", "MERGE");
request.Headers.Add("IF-MATCH", "*");
request.Headers.Add("X-RequestDigest", digest);
//{ '__metadata': { 'type': 'SP.Folder' }, 'Name': 'New name' }
dynamic obj = new JObject();
obj.__metadata = new JObject();
obj.__metadata.type = "SP.Folder";
obj.Name = operation.DesiredName;
request.Content = new ODataJObjectContent(obj);
using (var response = await connector.HttpClient.SendAsync(request, token))
{
response.EnsureSuccessStatusCode();
await response.ReadText();
}
}
Trong Fiddler đây là yêu cầu:
POST http://2013.blah.com/_api/Web/GetFolderByServerRelativeUrl('/Shared%20Documents/Test') HTTP/1.1
X-HTTP-Method: MERGE
IF-MATCH: *
X-RequestDigest: 0xA7C057B3AECE805B7313909570F64B8EACD7A677014B8EBE7F75CC5A7C081F87973D94E7CC22346964ECAB1FE3C6B326DA3B67DF7A646FE6F47E9B1E686C3985,11 Apr 2013 15:13:05 -0000
Accept: application/json; odata=verbose
Content-Type: application/json; odata=verbose
Host: 2013.skysync.com
Content-Length: 50
Expect: 100-continue
{"__metadata":{"type":"SP.Folder"},"Name":"Test2"}
Và rồi câu trả lời:
HTTP/1.1 204 No Content
Cache-Control: private, max-age=0
Expires: Wed, 27 Mar 2013 15:13:15 GMT
Last-Modified: Thu, 11 Apr 2013 15:13:15 GMT
Server: Microsoft-IIS/8.0
X-SharePointHealthScore: 0
SPClientServiceRequestDuration: 15
X-AspNet-Version: 4.0.30319
SPRequestGuid: 53bd109c-43bb-2064-4a1b-82298b670ece
request-id: 53bd109c-43bb-2064-4a1b-82298b670ece
X-RequestDigest: 0x9CDB4F31CC5F3877C4383657C12BEC6CFF10FC28AB6A0BB2D9D38B4279187CBD1450359BDFF07F0E63FF550BFF96C46E0476FB895CDA104348AC066D86246BC6,11 Apr 2013 15:13:15 -0000
X-FRAME-OPTIONS: SAMEORIGIN
X-Powered-By: ASP.NET
MicrosoftSharePointTeamServices: 15.0.0.4420
X-Content-Type-Options: nosniff
X-MS-InvokeApp: 1; RequireReadOnly
Date: Thu, 11 Apr 2013 15:13:15 GMT
Tất cả mọi thứ có vẻ tốt cho đến khi tôi trở về SharePoint và thư mục thử nghiệm vẫn như cũ Tên. Tôi đang làm theo các hướng dẫn từ here và tôi đã thấy các ví dụ rất giống nhau khác. Tôi có thể đổi tên nó thông qua giao diện mà không có bất kỳ vấn đề gì.
Cảm ơn trước sự giúp đỡ nào!
Sẽ là vấn đề về quyền. – Jordan
@Jordan Tôi có thể xóa các thư mục mặc dù, tôi biết nó có thể nhưng tôi nghĩ rằng nếu nó là một vấn đề quyền tôi sẽ không thể xóa một trong hai. – TroyC
Thêm một bình luận khác .. Tôi có thể đổi tên bằng các dịch vụ asmx SharePoint cũ, đó là những gì tôi đang làm bây giờ. Vui đủ đổi tên Danh sách hoạt động bằng phương pháp trên. – TroyC