2010-01-12 43 views
1

我与ZenDesk集成的应用程序。他们有一个REST API。我需要在请求正文中发送POX。我正在使用WCF REST入门套件。如何创建HTTP POST请求的主体内容与WCF REST(入门套件)

如何以编程方式将xml添加到请求正文?

这里是我的单元测试:

 [Test] 
     public void Can_create_user() 
     { 
      // Arrange 
      http = new HttpClient("http://myapp.zendesk.com/"); 
      http.TransportSettings.Credentials = new NetworkCredential 
               ("[email protected]", "passW0rd"); 
      http.DefaultHeaders.Accept.Add("application/xml"); 
      var form = new HttpUrlEncodedForm(); 
      var expectedStatusCode = 201; 

      var request = new XDocument(
       new XElement("user", 
          new XElement("email", "[email protected]"), 
          new XElement("name", "Joe User"), 
          new XElement("roles", "4"), 
          new XElement("restriction-id", "4"))); 

      form.Add("body", request.ToString()); 

      // Act 
      var response = http.Post("users.xml", form.CreateHttpContent()); 
      var content = response.Content.ReadAsString(); 

      // Assert 
      response.EnsureStatusIs(expectedStatusCode); 
+0

我最近写上的一些博客文章你可以用HttpContent做的其他事情。 http://www.bizcoder.com/index.php/2009/12/09/http-content-instead-of-streams/ – 2010-01-12 15:06:23

+0

干杯达雷尔。非常有用的博客文章。我已经Evernoted它:) – autonomatt 2010-01-12 15:18:12

回答

1

的解决方案是使用静态方法Microsoft.Http.HttpContent.Create()

var response = http.Post("users.xml", HttpContent.Create(requestXML.ToString())); 
+0

而且,取代这个 http.DefaultHeaders.Accept.Add(“application/xml”); 与此 http.DefaultHeaders.Add(“Content-Type”,“application/xml; charset = utf-8”); – autonomatt 2010-01-12 15:15:22

相关问题