尝试创建/更新自定义表单时出错

时间:2014-05-30 15:33:23

标签: c# attask

我已被分配到一个项目上,该项目使用AtTask API从我为内部网构建的Web应用程序中创建问题并附带自定义表单。我一直在使用这篇文章ATTask API - Updating Custom Field with API and C Sharp作为完成任务的主要起始参考。

与该帖子一样,我也收到了(500)内部服务器错误,但我收到网址的错误已直接插入浏览器{"error":{"class":"com.attask.util.json.JSONException","message":"org.codehaus.jackson.JsonParseException: Unexpected character ('S' (code 83)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')\n at [Source: java.io.StringReader@45c828e1; line: 1, column: 6]"}}

我的网址如下:

https://myCo.attasksandbox.com/attask/api/v3.0/optask?method=put&projectID=myID&name=API%20SandBox%20Issue&updates={DE:Service%20Affected:Electronic%20Communications,DE:Technical%20Details:I%20dunno,DE:How%20will%20this%20change%20be%20communicated?:It%20wont}&username=myUserName&password=myPassword

我注意到上面提到的帖子和我的网址之间的区别在于其他帖子的网址正在寻找categoryID。这是使用自定义表单所必需的吗?如果是这样,我在哪里可以找到该ID? (我对一个问题进行了搜索查询,该问题包含我尝试生成的自定义格式,但没有返回类别ID。)

顺便说一句,我的搜索查询如下所示:

Console.WriteLine("**Searching for Change Management Issues");
        JToken cmIssues = client.Search(ObjCode.ISSUE, new
        {
            projectID=cmProjID,
            name="SandBox Issue",
            name_Mod="contains",
            fields="parameterValues"
        });
        foreach (JToken issue in cmIssues["data"].Children())
        {
            Console.WriteLine(issue["name"]);
            Console.WriteLine(issue["categoryID"]);
            Console.WriteLine(issue);
        }

我同时使用了ISSUE& OPTASK ObjCode类型,在categoryID上没有运气。

2 个答案:

答案 0 :(得分:0)

尝试删除sessionID。最后,您使用的是用户名&密码,你不需要两者。确保正确拼写密码。在你的例子中,拼错了。

如果这不起作用。在发送呼叫之前,请确保UrlEncode将所有空格替换为%20。

答案 1 :(得分:0)

在最终能够回到这个项目之后,我发现我的问题在于我对JSON调用的不熟悉。对于这个特殊的问题,(在我修改了密码的拼写之后),我收到了我的错误,因为我既没有包围我发送的自定义表单对象也没有包含引号中的相关值。

基本上,我的问题是我这样做:

DE:The Object:The Value

我应该这样做的时候:

"DE:The Object":"The Value"