2015-06-26 79 views
0

我一直在嘗試批量使用c#更新數據到工作區,但是我的代碼已經返回了400個不好的異常。但是,當我在瀏覽器上使用相同的URL時,它會執行更新,但代碼已返回異常。下面是我的示例代碼:atTask c#批量更新返回400錯誤請求異常

 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); 


    } 

在代碼的結束,我的完整URL是象下面這樣:

https://osvtrial.attask-ondemand.com/attask/api/v4.0/user?method=post&sessionID=ca748236a1d6455ca96c01aad74b65a6&updates=[ {\ 「名稱\」:\ 「馬克 約翰遜\」,\ 「title \」:\「導演,信息 技術\」,\「emailAddr \」:\「[email protected] \」,\「用戶名\」:\「[email protected] \」}] &用戶名= xxxxxx & password = xxxxx

Coul d有人幫助解決上述問題,是否將url作爲相同URL傳遞到瀏覽器時的方式工作得很好。

回答

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