我一直在尝试使用c#批量更新数据到workfront,但是我的代码已经返回了400个异常。但是,当我在浏览器上使用相同的URL时,它会进行更新,但代码已经返回异常。以下是我的示例代码:
string fullUrl = "";
if (!path.StartsWith("/"))
{
path = "/" + path;
}
fullUrl = url + path + ToQueryString(parameters);
if (DebugUrls) Console.WriteLine("Requesting: {0}", fullUrl);
WebRequest request = HttpWebRequest.CreateDefault(new Uri(fullUrl));
Stream responseStream = null;
try
{
//request.Method = "PUT";
//request.ContentType = "application/x-www-form-urlencoded";
WebResponse response = request.GetResponse();
responseStream = response.GetResponseStream();
return ReadResponse(responseStream);
} catch (WebException ex) {
StreamReader sr = new StreamReader(ex.Response.GetResponseStream(), true);
Console.WriteLine(sr.ReadToEnd());
}
return ReadResponse(responseStream);
}
在代码的最后,我的完整网址如下:
https://osvtrial.attask-ondemand.com/attask/api/v4.0/user?method=post&sessionID=ca748236a1d6455ca96c01aad74b65a6&updates=[ {\"名称\":\"马克 Johansson \",\" title \":\" Director,Information 技术\" \" EMAILADDR \":\" mjohansson@workday.net \" \"用户名\":\&# 34; mjohansson@workday.net \"}]&安培;用户名= XXXXXX&安培;密码= XXXXX
有人可以帮助解决上述问题吗?在浏览器上使用url作为相同网址传递的方式问题是否正常。
答案 0 :(得分:0)
您需要提供要更新的用户对象的正确ID。在批量更新的情况下,方法应该不发布。请参阅此link。如果您要更新单个对象,那么您可以使用下面的api调用尝试
创建批量项目
PUT /attask/api/v4.0/proj?updates=[{“name”:”Test_Project_1”},{“name”:”Test_Project_2”}]&method=POST&apiKey=123ab-cxxxxxxxxxxxxxxxxxxxxxxxxxx
更新批量项目
PUT /attask/api/v4.0/proj?method=PUT&updates=[{"ID":"123abcxxxxxxxxxxxxxxxxxxxxxxxxxx","name":"Test_Project_1_ Edit"},{"ID":"123abcxxxxxxxxxxxxxxxxxxxxxxxxxx","name":"Test_Project_2_Edit"}]&apiKey=123abcxxxxxxxxxxxxxxxxxxxxxxxxxx