2012-11-14 14 views
1

我想使用restSharp的PUT/POST方法在redmine上創建/修改問題。 我無法使用Rest sharp找到有關xml PUT/POST的有價值的信息。我嘗試了restsharp.org的各種方法,如Addbody("test", "subject");,IRestResponse response = client.Execute(request);,但Redmine沒有任何變化。我究竟做錯了什麼?使用XML無法放置/ POST Sharp使用XML

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

至少解釋了爲什麼您downvote這篇文章。 –

+0

康拉德看看這個StackOverFlow鏈接http://stackoverflow.com/questions/10747261/how-to-add-a-get-parameter-to-a-post-request-with-restsharp 如果這沒有幫助做一個谷歌搜索C#Put/GET RestSharp示例 – MethodMan

+0

我做了,並且給出的唯一示例是使用JSON而不是xml,我也嘗試將它們的示例調整爲xml,並且它仍然不會改變redmine。 –

回答

0

您的代碼看起來不錯給我,我不能確定,如果你需要這一點,但我們添加了這個頭使用RestSharp對JSON反對的WebAPI主機時:

 request.AddHeader("Accept", "application/xml"); 
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);