2016-08-02 59 views
0

我正在尝试修改刚刚上传的文件的元数据。SharePoint 2013 REST API:更新文件元数据

using (HttpClient client = new HttpClient(new HttpClientHandler { Credentials = _authenticator.Credential })) 
{ 
    client.DefaultRequestHeaders.Add("X-HTTP-Method", "MERGE"); 
    client.DefaultRequestHeaders.Add("Accept", "application/json;odata=verbose"); 
    client.DefaultRequestHeaders.Add("X-RequestDigest", _authenticator.Token); 
    client.BaseAddress = _authenticator.Endpoint; 
    client.DefaultRequestHeaders.Add("IF-MATCH", "*"); 

    string cmd = String.Format("_api/web/lists/GetByTitle('Drop Off Library')/items({0})", file.Id); 

    string jsonString = JsonConvert.SerializeObject(file); 
    StringContent test = new StringContent(jsonString, Encoding.UTF8, "application/json"); 

    HttpResponseMessage response = await client.PostAsync(cmd, test); 
} 

我成功获取上述文件的元数据,并将其存储在我自己创建的SharePoint文件模型中。我修改了一个文件的元数据字段,然后尝试重新合并反序列化的对象。这导致了400错误请求错误。任何想法为什么这可能会发生?

回答

1

的解决方案将是,以取代线:

string jsonString = JsonConvert.SerializeObject(file); 
StringContent test = new StringContent(jsonString, Encoding.UTF8, "application/json"); 

var test = new StringContent(JsonConvert.SerializeObject(payload)); 
test.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json;odata=verbose"); 

因为在你的情况下产生的无效Content-Type报头。

enter image description here

支持的格式列表,请参阅JSON Light support in REST SharePoint API released

+1

谢谢你,我改变了你提供的行,它的工作正常! – Noah

相关问题