我想使用restSharp的PUT / POST方法在redmine上创建/修改问题。
我无法使用Rest sharp找到有关xml PUT / POST的有用信息。我试过restsharp.org中的各种方法,如Addbody("test", "subject");
,IRestResponse response = client.Execute(request);
,但Redmine没有变化。我做错了什么?
POST提供“仅获取,放置,并允许删除请求。”消息。
PUT提供“仅获取,发布,并允许删除请求。”消息。
我的代码
RestClient client = new RestClient(_baseUrl);
client.Authenticator = new HttpBasicAuthenticator(_user, _password);
RestRequest request = new RestRequest("issues/{id}.xml", Method.POST);
request.AddParameter("subject", "Testint POST");
request.AddUrlSegment("id", "5");
var response = client.Execute(request);
答案 0 :(得分:1)
问题在于序列化。我的Issue
类包含导致序列化问题的各种其他类的对象。
这就是我们这样做的方式:
RestRequest request = new RestRequest("issues/{id}.xml", Method.PUT);
request.AddParameter("id", ticket.id, ParameterType.UrlSegment);
request.XmlSerializer = new RedmineXmlSerializer();
request.AddBody(ticket);
RestClient client = new RestClient(_baseUrl);
client.Authenticator = new HttpBasicAuthenticator(_user, _password);
IRestResponse response = client.Execute(request);
答案 1 :(得分:0)
您的代码对我来说没问题,我不确定您是否需要此代码但我们在针对WebAPI主机使用RestSharp for json时添加了此标头:
request.AddHeader("Accept", "application/xml");