Json 正文中的Curl API请求值始终为空

Json 正文中的Curl API请求值始终为空,json,curl,http-post,asp.net-core-mvc,.net-core,Json,Curl,Http Post,Asp.net Core Mvc,.net Core,我有下面的控制器,我正在尝试使用Curl来测试它。问题是fiscalId总是空的,因为它不能从curl读取我的文章正文 控制器: [Route("api/token")] public class TokenController : Controller { [HttpPost("changefiscal")] [Authorize] public async Task<ActionResult> ChangeFiscal([FromBody] l

我有下面的控制器,我正在尝试使用Curl来测试它。问题是fiscalId总是空的,因为它不能从curl读取我的文章正文

控制器:

  [Route("api/token")]
  public class TokenController : Controller
  {
    [HttpPost("changefiscal")]
    [Authorize]
    public async Task<ActionResult> ChangeFiscal([FromBody] long fiscalId)
    {
      //fiscalId is always 0
    }
  }

还有我能想到的一切

我可以在日志中看到它似乎正在发送它

  • 已重建URL至:POST/
  • 不支持名称查找超时
  • getaddrinfo(3)对POST:80失败
  • 无法解析主机“POST”
  • 正在关闭连接0:(6)无法解析主机“POST”
  • 不支持名称查找超时
  • 正在尝试::1
  • TCP_节点集
  • 正在尝试127.0.0.1
  • TCP_节点集
  • 已连接到本地主机(127.0.0.1)端口5000(#1) POST/api/token/ChangeFinancial HTTP/1.1 主机:本地主机:5000 用户代理:curl/7.53.1 接受:/ 内容类型:application/json 授权:持票人2.我的研究成果是一个新的社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区社区WNJZX2.2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 6OIMLQY4m-"NRTSRBs5QtsXBd5VQGPsTpxf"MXVBQM6HJ6OT3FGRIA08GMWD3IER9VSCU6732InGZU26WTM-WLWp"k66Z29G8ms"U8x6gg-aOlQG9"0v"DEJTXCKKNCGWOL0IVACC0PSIYKDIQXAOWZ-e"FCQXPKEFMUOGD1L-EML3HIMMDOHWQPWL4Q 内容长度:7

  • 上传已完全发送:7个字节中有7个

然而,当我检查fiscalId时,它总是0,我甚至尝试将fiscalId更改为字符串,并且它只是空的。

最后,在玩了一个多小时后,我得到了它,即使内容类型是json,它只是作为字符串发送
“'21875'
,即使所有文档都显示它是作为json发送的。由于某些原因,API无法将其作为JSon对象读取,但希望它仅作为字符串发送

curl POST -v -d "'21875'" -H "Content-Type: application/json" -H "Authorization: Bearer XXX" http://localhost:5000/api/token/changefiscal

最后,在玩了一个多小时后,我得到了它,尽管内容类型是json,但它只是作为字符串发送的。
“'21875'”
,尽管所有文档都显示它是作为json发送的。由于某些原因,API无法将其作为JSon对象读取,但希望它仅作为字符串发送

curl POST -v -d "'21875'" -H "Content-Type: application/json" -H "Authorization: Bearer XXX" http://localhost:5000/api/token/changefiscal

当您将数据作为JSON对象发布时,比如
-d'{“fiscalId”:21875}'
,您的操作方法应该需要一些具有相应属性的简单类。就你而言:

public class Dto
{
   public long fiscalId {get; set;}
}

公共异步任务changeFinancial([FromBody]Dto数据)

当您将数据作为JSON对象发布时,比如
-d'{“fiscalId”:21875}'
,您的操作方法应该需要一些具有相应属性的简单类。就你而言:

public class Dto
{
   public long fiscalId {get; set;}
}

公共异步任务changeFinancial([FromBody]Dto数据)

当所有文档都说要发送的是JSon字符串时,我几乎不认为这是一个印刷错误。我更愿意称之为奇怪的是.net core handels是如何解析Body的。谁投票过这封信?当所有文档都说发送是作为JSon字符串时,我几乎不把它称为印刷错误。对于.net core handels解析body的方式,我更愿意称之为奇怪。我无法更改此方法描述,但这可能解释了它无法从json对象body读取的原因。我无法更改此方法描述,但这可能解释了它无法从json对象body读取的原因
curl POST -v -d "'21875'" -H "Content-Type: application/json" -H "Authorization: Bearer XXX" http://localhost:5000/api/token/changefiscal
public class Dto
{
   public long fiscalId {get; set;}
}
public async Task<ActionResult> ChangeFiscal([FromBody] Dto data)