使Web API方法接受xml

时间:2014-10-30 12:01:24

标签: asp.net-web-api

我是Web API的新手,所以如果这个问题听起来微不足道或愚蠢,请继续提供解决方案。

我有一个要求,即我的网络API的消费者希望发布一个xml。

我创建了一个空的Web API控制器,并添加了一个类似的方法:

public class StudentController : ApiController
{
    [HttpPost]
    public Student GetStudent(Student studentXml)
    {
        Student student = new Student() { Id = 502, Course = "Chemistry" };
        return student;
    }
}

param是Student类型,它是与xml中的标记具有相同属性的类。 将要发布的XML就像这样:

<StudentStatus>
    <AccountID>1231</AccountID>
    <Password>2132132</Password>
    <Batch/>
    <Sequence/>
    <Test>0</Test>
    <Date>09/25/2014 09:18:24</Date>
    <TestNumber>1972</TestNumber>
    <StatusCode>3</StatusCode>
    <ID>502</ID>
</StudentStatus>

该方法假设返回XML作为响应。

很容易
  

接受:application / xml

但是如何让该方法接受XML?

非常感谢任何帮助。

问候。

1 个答案:

答案 0 :(得分:0)

在控制器代码中尝试此操作...删除获取前缀,无需添加[HttpPost] 放一个breakpint,看看它是否在那里。

public void PostStudent(string studentXml)
    {
       //Write your logic here
    }

在发布数据的代码中尝试此操作

using (var client = new WebClient())
{
var data = "XML data" //Try HTML.Encode if it does not work               
var result = client.UploadString("http://localhost:52996/api/Student", "POST", data);
//Do something with result
}