无法使用Rest使用Rest Sharp进行PUT / POST

时间:2012-11-14 18:42:24

标签: c# xml http rest restsharp

我想使用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);

2 个答案:

答案 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");