0

我一直在尝试使用 c# 将数据批量更新到工作区,但我的代码一直返回 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=[ {\"name\":\"Marc Johansson\",\"title\":\ "信息技术总监\",\"emailAddr\":\"mjohansson@workday.net\",\"用户名\":\"mjohansson@workday.net\"}]&username=xxxxxx&password=xxxxx

有人可以就上述问题提供帮助吗,当放在浏览器上时,将 url 作为相同 url 传递的方式是否存在问题。

4

1 回答 1

0

您需要提供要更新的用户对象的正确 ID。在批量更新的情况下,不应发布方法。请参考此链接。如果您正在更新单个对象,那么您可以在下面的 api 调用中使用 try

创建批量项目

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
于 2015-06-27T06:25:28.440 回答