.net 无法调用[HttpPost] Web API

9rygscc1  于 2023-01-14  发布在  .NET
关注(0)|答案(3)|浏览(136)

下面是我的发帖方法

[HttpPost]
public string Happay(string fileName) 
{
    //some code
}

当我尝试使用此URL https://localhost:44313/SAPAPI/Happay?fileName=Payload1从postman调用它时,它工作正常,但当我尝试从浏览器执行相同操作时,它给了我一个异常
资源未找到
我从顶部删除了[HttpPost]属性,然后就可以从浏览器调用该方法了。

0x6upsns

0x6upsns1#

QueryString(在您的示例中为?fileName=Payload1)仅适用于GET请求。
在POST的情况下,您可以提供参数

  • 作为请求路由的一部分,如POST /SAPAPI/Happay/Payload1
  • 作为请求主体,如filename=Payload1作为原始
  • 作为请求报头,如"x-file-name": "Payload1"

根据您需要指定参数来源的模式

  • public string Happay([FromRoute]string fileName)
  • public string Happay([FromBody]string fileName)
  • public string Happay([FromHeader(Name = "x-file-name")]string fileName)

| 参数为|样品|代码变更|
| - ------|- ------|- ------|
| 途径|POST /SAPAPI/Happay/Payload1|[FromRoute(Name="fileName")]string fileName|
| 身体|fileName=Payload1|[FromBody(Name="fileName")]string fileName|
| 标题|x1米11米1x|[FromHeader(Name="x-file-name")]string fileName|

0pizxfdo

0pizxfdo2#

在参数前添加[FromBody]。

[HttpPost]
public string Happay([FromBody] string fileName) 
{
    //some code
}
ztyzrc3y

ztyzrc3y3#

如果您从浏览器调用url,这是一个GET请求。请了解更多关于REST的信息。

相关问题