Asp.net web api 使Web API方法接受xml
我是新的网络API,所以如果这个问题听起来很琐碎或愚蠢,请仍然给出一个解决方案 我有一个要求,即我的web api的使用者希望发布xml 我创建了一个空的Web API控制器,并添加了如下方法:Asp.net web api 使Web API方法接受xml,asp.net-web-api,Asp.net Web Api,我是新的网络API,所以如果这个问题听起来很琐碎或愚蠢,请仍然给出一个解决方案 我有一个要求,即我的web api的使用者希望发布xml 我创建了一个空的Web API控制器,并添加了如下方法: public class StudentController : ApiController { [HttpPost] public Student GetStudent(Student studentXml) { Student student = new St
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>
1231
2132132
0
09/25/2014 09:18:24
1972
3.
502
假设该方法返回一个XML作为响应。
这对我来说很容易
接受:应用程序/xml
但是如何使该方法接受XML呢
非常感谢您的帮助
注意。在控制器代码中尝试此操作…删除Get前缀,无需添加[HttpPost] 放一品脱啤酒,看看它是否击中那里
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
}
使用[HttpPost]将xml作为字符串发布。将XML转换为dataset(ds.ReadXML),将HttpPost添加为属性并将XML作为字符串传递,浏览器会说“此请求的URL长度超过配置的maxUrlLength值”,请不要将其与URL一起传递。使用Jquery post方法传递它也可以在.netSo中使用WebRequest进行post,方法标记为HttpGet,而WebClient调用为post,这不起作用。将方法更改为使用HttpPost,并给出404。如果你愿意,我可以发布控制器代码。感谢您的时间。请尝试阅读此文章…添加了包含方法所需对象的代码。也请查看此链接。。。