簡體   English   中英

SharePoint 2013 REST API:更新文件元數據

[英]SharePoint 2013 REST API: Updating File Metadata

我正在嘗試修改剛剛上傳的文件的元數據。

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 Bad Request錯誤。 為什么會發生這種情況的任何想法?

解決方案是替換以下行:

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標頭。

在此處輸入圖片說明

有關受支持格式的列表,請參閱發布的REST SharePoint API中的JSON Light支持

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM