首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果将内容类型设置为application/json - .netcore6 api,则.netcore6返回404

如果将内容类型设置为application/json - .netcore6 api,则.netcore6返回404
EN

Stack Overflow用户
提问于 2022-08-16 17:13:41
回答 1查看 135关注 0票数 0

我正在尝试编写一个API来处理来自三叶草的web钩子文章,它们的标题指定了内容类型: application/json

由于某些原因,我的HttpPost方法拒绝了带有404错误的帖子(我假设这是我的方法),只要我的内容类型不是application/json,我就可以将它发布到我的端点--只要我的内容类型不是application/json--只要切换到该类型,我就可以得到404。

我在这里缺少一些基本的东西:/有什么想法吗?

如果我发布(使用Reqbin),我的端点接受并返回200 OK

代码语言:javascript
复制
POST /auctionapi/Auction HTTP/1.1
Host: www.someweb.com
Content-Length: 60

{"verificationCode": "b860be7e-6ac4-4b56-8ac6-f44cf238a296"}

如果我改变内容类型我得到404.

代码语言:javascript
复制
POST /auctionapi/Auction HTTP/1.1
Host: www.someweb.com
Content-Type: application/json
Content-Length: 60

{"verificationCode": "b860be7e-6ac4-4b56-8ac6-f44cf238a296"}

我的密码..。

代码语言:javascript
复制
[Route("[controller]")]
[ApiController]
public class AuctionController : ControllerBase
{
    private readonly PCSOAuctionsContext _context;
    public AuctionController(PCSOAuctionsContext context)
    {
        _context = context;
    }      

    [HttpPost("receive")]
    public async Task<IActionResult> receive()
    {
        return StatusCode(200, "Thanks for using the API");
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-16 17:43:58

尝试这样做,看看这是否解决了404。HttpPost被发送到json的内容类型,但是您的方法没有设置来接收它,因此它会404,因为找不到合适的路由。

代码语言:javascript
复制
[Route("pcsoauctionapi/[controller]")]
[ApiController]
public class AuctionController : ControllerBase
{
    private readonly PCSOAuctionsContext _context;
    public AuctionController(PCSOAuctionsContext context)
    {
        _context = context;
    }

    [HttpGet]
    public IEnumerable<string> Get()
    {
        return new string[] { "PCSO Auction API", "Online" };
    }      

    [HttpPost("receive")]
    public async Task<IActionResult> receive([FromBody] object jsonData)
    {
        return StatusCode(200, "Thanks for using the API");
    }
}

我刚刚测试了我的上述方法,它工作得很好。所以你的三叶草请求出了问题。这是自负的结果。

这不应该有什么不同,但不要设置内容长度,然后尝试发送。你也可以发卷曲要求三叶草正在做。这肯定会揭示问题在哪里。这是我的卷发要求。

代码语言:javascript
复制
curl -X 'POST' \
  'https://localhost:7777/api/V1/receive' \
  -H 'accept: */*' \
  -H 'Content-Type: application/json' \
  -d '{"verificationCode": "b860be7e-6ac4-4b56-8ac6-f44cf238a296"}'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73377806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档