标记完成任务 object

markDone on Task object

我正在尝试对任务 Object 使用 markDone 操作。我猜这是一个 PUT,但我试过 POST。我还没有尝试使用 PUT 或 POST 参数的 GET,接下来我会尝试。但是我不想走这条路。我是 Web API 的新手,这是我第一次尝试编写与另一个 API 对话的 API,因此这可能会解决这个问题。我正在使用 HttpClient object 并尝试了 PostAsync 和 PutAsync。以下是我目前拥有的。

    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 是什么或 headers 应该是什么。

我会尽力提供帮助,但我主要在 Python 和 Javascript/Node 工作。关于通过操作将任务标记为已完成,这将是一个 PUT 调用。这是使用 API 密钥身份验证方法的示例 URL。对于会话密钥,您只需切换到 sessionID

https://xxx.attask-ondemand.com/attask/api/v6.0/task/582df5e700e6243a8656824931a495b7?apiKey=xxxxxxx&action=markDone

/task/后面的UID为任务ID号

这是执行此操作的 C# 代码

using (var apiManagementSystem = new HttpClient())
{
    apiManagementSystem.BaseAddress = new Uri("https://xxxxxxx.preview.workfront.com/attask/api/");
    apiManagementSystem.DefaultRequestHeaders.Clear();

    HttpContent httpContent = null;
    responseMessage = apiManagementSystem.PutAsync("TASK/TASKIDxxx?action=markDone&apiKey=apikeyxxx", httpContent).Result;

}