【问题标题】:Why I can't get a post request in the controller?为什么我无法在控制器中获得发布请求?
【发布时间】:2019-09-20 09:30:37
【问题描述】:

我想在控制器中获取帖子的正文。

这是我的代码:

[HttpPost]
public string GetMsg([FromBody]GetMsgModel GSM)
{
    return "";
}

并发布类

public class GetMsgModel { 
    public string ToUserName { get; set; }
    public string FromUserName { get; set; }
    public string CreateTime { get; set; }
    public string MsgType { get; set; }
    public string Content { get; set; }
    public string MsgId { get; set; }
}

我在GetMsg 中添加了一个断点,并通过邮递员发送带有此 XML 正文的帖子:

<xml>
  <ToUserName>123</ToUserName>
  <FromUserName>456</FromUserName>
  <CreateTime>1348831860</CreateTime>
  <MsgType>789</MsgType>
  <Content>000</Content>
  <MsgId>1234567890123456</MsgId>
</xml>

嗯,断点根本没有运行。

这有什么问题?在同一个控制器中还有另一个HttpGet 方法,它运行良好。看来还不是控制器的问题。

【问题讨论】:

  • 您确定将 API 服务器配置为能够处理 XML 请求吗?另外,您是否在 XML 文件的 HTTP 请求中指定了正确的标头?
  • @IskanderRaimbayev 我是初学者,对此我不确定。在我看来,XML 请求只是字符串,所以我编写了上面的代码。

标签: c# asp.net-core asp.net-core-routing


【解决方案1】:

如果您使用的是 Net Core 添加到 Statup.cs

services.AddXmlSerializerFormatters();

XML 应该是

<GetMsgModel>
  <ToUserName>123</ToUserName>
  <FromUserName>456</FromUserName>
  <CreateTime>1348831860</CreateTime>
  <MsgType>789</MsgType>
  <Content>000</Content>
  <MsgId>1234567890123456</MsgId>
</GetMsgModel>

希望对你有帮助

【讨论】:

猜你喜欢
  • 2015-08-28
  • 2016-02-29
  • 1970-01-01
  • 2022-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-01
  • 1970-01-01
相关资源
最近更新 更多