gpt4 book ai didi

c# - 将 XML 发布到 WebAPI 并返回结果

转载 作者:太空宇宙 更新时间:2023-11-03 13:15:10 24 4
gpt4 key购买 nike

所以一段时间以来我一直在努力完成这项工作。让我解释一下这个要求。我必须编写一个 WebAPI 来接受 XML、进行一些查找并返回响应。

我是新手,所以寻求帮助。建议是创建一个自定义对象来表示传入的 XML并将该对象用作 WebAPI 公开的方法的参数。结果将是一个没有问题的类。

这是完成的步骤。

创建了一个空的 WebAPI 项目。添加了一个表示传入 XML 的类。

传入的 XML:

<InComingStudent>
<StudentID>10</StudentID>
<Batch>56</Batch>
</InComingStudent>

类(class):

public class InComingStudent
{
public string StudentID { get; set; }
public string Batch { get; set; }
}

返回此类型的对象:

public class StudentResult
{
public string StudentID { get; set; }
public string Batch { get; set; }
public string Score { get; set; }
}

用这个方法添加了一个 Students Controller :

public class StudentsController : ApiController
{
[HttpPost]
public StudentResult StudentStatus(InComingStudent inComingStudent)
{

ProcessStudent po = new ProcessStudent();
StudentResult studentResult = po.ProcessStudent();
return StudentResult;
}
}

运行服务。它在带有 404 的新浏览器中打开。没关系,因为我没有起始页。

编写了一个控制台应用程序进行测试:

private static async void PostToStudentService()
{
using (var client = new HttpClient())
{
var studentToPost = new InComingStudent() { StudentID = "847", Batch="56"};
client.BaseAddress = new Uri("http://localhost:53247/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml"));

HttpResponseMessage response = await client.PostAsXmlAsync("api/Students/StudentStatus", studentToPost);

if (response.IsSuccessStatusCode)
{
// Print the response
}
}
}

MediaTypeWithQualityHeaderValue 设置为 application/xml。到目前为止,一切都很好。当服务正在运行并且我运行控制台应用程序时,响应是 404“未找到”。

我错过了什么?

非常感谢任何帮助。

问候。

最佳答案

您是否尝试过 [FromBody] 属性?

public class StudentsController : ApiController
{
[HttpPost]
public StudentResult StudentStatus([FromBody]InComingStudent inComingStudent)
{
ProcessStudent po = new ProcessStudent();
StudentResult studentResult = po.ProcessStudent();
return StudentResult;
}
}

作为一个建议,我会使用属性路由。

public class StudentsController : ApiController
{
[HttpPost, Route("api/stutents/studentsstatus")]
public StudentResult StudentStatus([FromBody]InComingStudent inComingStudent)
{
// ...
}
}

关于c# - 将 XML 发布到 WebAPI 并返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26671830/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com