403通过rest(c#)上传json字符串时

时间:2016-05-24 09:37:53

标签: c# mysql json rest

实际上我正试图在我的codeBeamer中获取表格 - 通过CodeBeamer的REST服务更新mysql。所以我下载了一些表,将它们与其他表进行比较,并将新表上传到CodeBeamer数据库。一切正常,但是当上传转换后的JSON字符串时,我得到403例外。

到目前为止我尝试了什么:

  • 通过凭据登录为服务器管理员
  • PUT和POST方法
  • 分别上传每一行

这是我用来上传json字符串的代码:

`

$this->isGranted('ROLE_ALLOWED_TO_SWITCH')

`

代码应该做什么: 将“_dtRolesEdit”数据表中的一行一行转换为json并将其上传到数据库。

控制台输出:

`

string jsonFinal;
 DataTable _dtJasonRoles = _dtRolesEdit.Clone();
 _dtJasonRoles.Rows.Add(_dtJasonRoles.NewRow());
 for (int i = 0; i < _dtRolesEdit.Rows.Count; i++)
 {
       _dtJasonRoles.Rows[0]["uri"] = _dtRolesEdit.Rows[i]["uri"];
       _dtJasonRoles.Rows[0]["name"] = _dtRolesEdit.Rows[i]["name"];
       _dtJasonRoles.Rows[0]["description"] = _dtRolesEdit.Rows[i]["description"];
       jsonFinal = JsonConvert.SerializeObject(_dtJasonRoles, Formatting.Indented);                                                            
       Console.WriteLine(jsonFinal);                                                                                                           
       string result = "";
       client.Headers[HttpRequestHeader.ContentType] = "application/json";
       result = client.UploadString("http://*server*:*port*/cb/rest/role", "PUT", jsonFinal);
       Console.WriteLine(result);
 }                

`

经过数小时的研究和排除故障,你是我最后的希望。 你知道怎么解决这个问题。我甚至无法想象我的错在哪里。

祝你好运

1 个答案:

答案 0 :(得分:1)

幸运的是我和我的同事一起发现了这个问题。问题是,我的表中有我需要更改的主题和我需要添加的主题。所以第一个问题是我在同一个数据表中有PUT和POST请求。第二个问题是我的数据表中的第一行应该添加到CodeBeamer中的现有表中。因此,如果您向CodeBeamer发送POST,则不需要JSON中的URI,因为REST API会自动为新行生成URI。 现在我必须分别发布新项目并将更改分开,一切正常。

迎接