Я хочу обновить уже существующую вики-страницу tfs, используя этот документ: https://docs.microsoft.com/de-de/rest/api/azure/devops/wiki/pages/create%20or%20update?view=azure-devops-rest-4.1
Создание новой вики-страницы (с контентом) не составляет проблем.Это работает нормально.Но я хочу отредактировать существующий.В документации tfs говорится, что единственная разница в вызове API заключается в использовании заголовка " If-Match " (см. Раздел Заголовок запроса ).
Здесь у меня есть 3 ситуации:
- Использование нет Заголовок «If-Match» или пустой: Получить « 412 Сбой предварительного условия *»1018 * "ошибка.
- Использование заголовка" If-Match "с случайным значением : получить ошибку" 400 Bad Request".
- Использование заголовка «If-Match» с точно 40 символами (например, хэш версии ревизии страницы (например, '09f62be600a3b6d36d21b294dbb00921a5ba03ec')): снова " 412 Не выполнено предварительное условие "error.
Я думаю, что хеш-версия (40 символов) должна быть хорошим способом, потому что сообщение об ошибке на не-40-символьных значениях возвращает ошибку 400.
Ноэто не работает?У кого-нибудь есть идея, которой хочет id tfs?Я использовал Postman и C # для обновления через API.Ниже вы можете увидеть мой пример кода:
var handler = new HttpClientHandler()
{
UseDefaultCredentials = true,
UseProxy = false,
};
var client = new HttpClient(handler);
client.BaseAddress = new Uri(".../pages/pagename" + "?api-version=4.1");
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
var putContent = new StringContent("{ \"content\": \"New content for page\" }", Encoding.UTF8, "application/json");
client.DefaultRequestHeaders.TryAddWithoutValidation("If-Match", "09f62be600a3b6d36d21b294dbb00921a5ba03ec");
var responseTask = client.PutAsync(client.BaseAddress, putContent);
var result = responseTask.Result;
var content = result.Content.ReadAsStringAsync().Result;
var code = result.StatusCode;
var body = content;