我是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?
非常感谢任何帮助。
问候。
答案 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
}