Я пытаюсь использовать действие markDone для объекта задачи. Я предполагаю, что это PUT, но я попробовал POST. Мне еще нужно попробовать GET с параметром PUT или POST, который я попробую сделать дальше. Однако я бы предпочел не идти по этому маршруту. Я довольно новичок в веб-API, и это моя первая попытка написать API, который говорит с другим API, чтобы он мог играть в эту проблему. Я использую объект HttpClient и пробовал PostAsync и PutAsync. Ниже приводится то, что у меня есть.markDone on Task object
using (var apiManagementSystem = new HttpClient())
{
apiManagementSystem.BaseAddress = new Uri("https://xxxxxxx.preview.workfront.com/attask/api/");
apiManagementSystem.DefaultRequestHeaders.Clear();
apiManagementSystem.DefaultRequestHeaders.Add("SessionID", "xxxxxxx");
HttpContent httpContent = new StringContent("?ID=xxxxxxx&action=markDone&status=CPL");
HttpResponseMessage responseMessage = apiManagementSystem.PutAsync("Task", httpContent).Result;
}
Даже если вы не знаете, если приведенный выше код является правильным, может быть, вы знаете, что URL будет или заголовки должны быть.
Я только что закончил пытаюсь это, и это не работает для меня. Я получаю 400, и WorkFront возвращает сообщение No Assignment. Однако я могу сделать Get для моего идентификатора, и он возвращает мой объект. –
Единственное, что я заметил, это ваш URL. Я пробовал domain/attask/api/task/xxxxx ..... и у вас есть domain/attask/api/v6.0. Я видел, как другие используют этот подход. Когда у моего URL-адреса нет версии, я получаю 400. Когда я нацелен на версию, я получаю 403 (запрещено) с той же ошибкой. Это заставляет меня думать, что мой запрос на URL-адрес без версии на самом деле является проблемой с разрешениями. Я предполагаю, что отказ от версии нацелен на самый последний api. Это верно? –
еще одна вещь, которую я должен отметить, это то, что у меня есть объект HttpContent как null. Я знаю, что вы не работаете с C#, но я подумал, что я должен поставить его здесь на всякий случай, если это поможет вам или другим. –