SharePoint REST - Почему обновление метаданных возвращает 204 вместо 200? - PullRequest
0 голосов
/ 23 мая 2018

Используя указанную ниже конечную точку, мы можем обновить метаданные для конкретного файла: https://domain.example.com/_api/web/GetFileByServerRelativeUrl(URL)/ListItemAllFields

Почему после успешного обновления метаданных API возвращает 204 вместо 200. Ожидается ли это или существует какой-либо другой способ обновления метаданных.

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Согласно Документация по Dynamics Web API , по умолчанию обновляются данные без возврата обновленных результатов.Вот почему вы получаете код состояния 204. Чтобы вернуть данные, вам нужно добавить заголовок prefer:return=representation к вашему вызову Web API.Добавление заголовка prefer вернет код состояния 200.

Пример C #

HttpClient client = new HttpClient();
client.BaseAddress = new Uri(Helpers.GetSystemUrl(APIConnector.Application.Dynamics));
client.DefaultRequestHeaders.Clear();
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Add("OData-MaxVersion", "4.0");
client.DefaultRequestHeaders.Add("OData-Version", "4.0");
client.DefaultRequestHeaders.Add("prefer", "return=representation");

Пример машинописного текста

let xhr = new XMLHttpRequest();
xhr.open("PATCH", CONNECTION_URL, true);
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("OData-MaxVersion", "4.0");
xhr.setRequestHeader("OData-Version", "4.0");
xhr.setRequestHeader("Content-Type", "application/json");          
xhr.setRequestHeader("prefer", "return=representation");
0 голосов
/ 23 мая 2018

API REST SharePoint не возвращает обновленный элемент / объект после его обновления.Он только возвращает код состояния 204. Если запрос на обновление успешен.

Если вы хотите получить обновленный элемент / объект, вы должны сделать еще один запрос GET.

/_api/web/lists/getbytitle('list name')/items(item id)
...