0

我正在尝试对任务对象使用 markDone 操作。我的猜测是这是一个 PUT,但我尝试了一个 POST。我还没有尝试使用 PUT 或 POST 参数的 GET,我将在接下来尝试。但是,我宁愿不走这条路。我对 Web API 相当陌生,这是我第一次尝试编写与另一个 API 对话的 API,因此这可能会解决这个问题。我正在使用 HttpClient 对象并尝试过 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 是什么或标题应该是什么。

4

2 回答 2

0

我会尝试在这里提供帮助,但我主要使用 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 号。

于 2017-02-02T21:55:00.280 回答
0

这是执行此操作的 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;

}
于 2017-03-11T19:36:40.190 回答