Невозможно PUT/POST с использованием Rest Sharp с использованием XML

Я хочу создать/изменить задачу в redmine, используя методы PUT/POST в restSharp. Я не могу найти ценную информацию о xml PUT/POST с использованием Rest Sharp. Я пробовал различные методы с 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);

person Conrad C    schedule 14.11.2012    source источник
comment
Хотя бы объясните, почему вы минусуете этот пост.   -  person Conrad C    schedule 14.11.2012
comment
Конрад, посмотрите на эту ссылку StackOverFlow stackoverflow.com/questions/10747261/, если это не помогает выполнить поиск в Google на примере С# Put/GET RestSharp   -  person MethodMan    schedule 14.11.2012
comment
Я сделал, и единственные приведенные примеры приведены в формате JSON, а не в формате xml, я также пытался адаптировать их пример к XML, и он по-прежнему не дает никаких изменений в redmine.   -  person Conrad C    schedule 14.11.2012
comment
Если вы хотите сделать это с помощью XML, вы можете изменить свой вопрос, чтобы отразить это.   -  person MethodMan    schedule 14.11.2012
comment
вот еще одна ссылка. Если у вас есть XML, также покажите структуру XML, пожалуйста. " title="публикация в службу отдыха с помощью restsharp"> stackoverflow.com/questions/8917437/   -  person MethodMan    schedule 14.11.2012
comment
@DJKRAZE, ссылка, которую вы прислали, не имеет отношения к моей проблеме. Пожалуйста, скажите мне, если что-то неясно.   -  person Conrad C    schedule 14.11.2012
comment
вы пытаетесь сделать это с помощью XML ..? Я немного смущен одним из ваших комментариев .. спасибо   -  person MethodMan    schedule 14.11.2012
comment
Можете ли вы опубликовать, как выглядит метод REST, чтобы помочь вам.   -  person Rajesh    schedule 15.11.2012
comment
Или, возможно, могут помочь как запрос, так и ответ от Fiddler?   -  person C.M.    schedule 15.11.2012


Ответы (2)


Проблема была в сериализации. Мой класс 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);
person Conrad C    schedule 15.11.2012

Ваш код выглядит нормально для меня, я не уверен, что вам это нужно, но мы добавили этот заголовок при использовании RestSharp для json против хоста WebAPI:

        request.AddHeader("Accept", "application/xml");
person C.M.    schedule 14.11.2012