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

C# 尝试创建/更新自定义表单时出错,c#,attask,C#,Attask,我被分配到一个项目中,该项目使用AtTask API从我为intranet构建的web应用程序中创建问题和附带的自定义表单。我一直在使用这篇文章,作为我完成任务的主要起始参考 像那篇文章一样,我也收到了(500)个内部服务器错误,尽管我收到的URL直接插入浏览器的错误是{“Error”:{“class”:“com.attask.util.json.JSONException”,“message”:“org.codehaus.jackson.JsonParseException:意外字符('S'(

我被分配到一个项目中,该项目使用AtTask API从我为intranet构建的web应用程序中创建问题和附带的自定义表单。我一直在使用这篇文章,作为我完成任务的主要起始参考

像那篇文章一样,我也收到了(500)个内部服务器错误,尽管我收到的URL直接插入浏览器的错误是
{“Error”:{“class”:“com.attask.util.json.JSONException”,“message”:“org.codehaus.jackson.JsonParseException:意外字符('S'(代码83)):应为有效值(数字、字符串、数组、对象、“true”、“false”或“null”)\n位于[源代码:java.io。StringReader@45c828e1;行:1,列:6]“}}

我的URL如下所示:

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
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);
        }
我注意到,我上面引用的帖子和我的URL之间的一个区别是,另一篇帖子的URL正在查找categoryID。这对于使用自定义表单是必要的吗?如果是,我在哪里可以找到该ID?(我对一个问题进行了搜索,该问题包含我试图生成的自定义表单,但没有返回categoryID)

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

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
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对象代码类型,但在categoryID上没有成功。

尝试删除sessionID。在使用用户名和密码的最后,您不需要这两种类型。请确保密码拼写正确。在您的示例中,密码拼写错误


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

在最终能够返回此项目后,我发现我的问题在于我对JSON调用不熟悉。对于此特定问题,(在修复密码拼写后),我收到错误,因为我既没有用引号括住要发送的自定义表单对象,也没有用引号括住相关值

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

DE:The Object:The Value
当我应该这样做的时候:

"DE:The Object":"The Value"

&username=myUsername&passowrd=myPassword
当你发表文章时,这是一个打字错误,还是你实际发送的内容?嘿,既然我最初的问题是由一个打字错误引起的,而更新现在是问题的真正核心,我是否应该更改此文章的名称以反映这一点并删除有什么不相关的吗?(很抱歉问了这样一个问题,但我对SO还不熟悉,只是想确保我做的事情是正确的。)是的,你应该这样做。或者要求关闭此问题,然后打开一个新问题。@Ben谢谢。我已更新了问题标题和正文,以删除现在不相关的部分。有人对我的问题有什么想法吗?它上次激活已经一个月了……感谢你指出排印错误,解决了我最初的问题。但是,我我已经用我的主要问题更新了标题和正文。你对我如何解决这个问题有什么想法吗?