我正在尝试在Task Object上使用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是什么或者标题应该是什么。
答案 0 :(得分:0)
我会尽力帮助,但我主要使用Python和Javascript / Node。关于通过动作标记任务,这将是PUT调用。以下是使用API密钥身份验证方法的示例网址。对于会话密钥,您只需切换到sessionID
https://xxx.attask-ondemand.com/attask/api/v6.0/task/582df5e700e6243a8656824931a495b7?apiKey=xxxxxxx&action=markDone
/ task /之后的UID是任务的ID号。
答案 1 :(得分: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;
}