我正在尝试编写一个简单的API来接收带有请求正文的POST请求。当我尝试测试我的方法时,Postman一直返回400错误请求。我最初认为问题在于反序列化JSON正文。因此,为了确保,我从控制器中剥离了该逻辑,但请求仍然返回400状态码。
所以,我除了方法本身之外,将所有内容都从我的方法中删除,仅返回
现在我只剩下如下内容:
GET方法运行良好,但是当我在Postman中向
我还注意到,当我将路由更改为不存在的任何不同或随机内容时,也会得到400而不是404。
因此,对
我一直在更改请求表单中的小细节,添加/删除ContentType或Accept头,并调整我的
编辑
这可能与
所以,我除了方法本身之外,将所有内容都从我的方法中删除,仅返回
Ok('Hello World');
,但响应仍然是400。现在我只剩下如下内容:
[Route("api/v1/service/")]
public class ServiceController : Controller
{
public ServiceController()
{
}
[HttpGet("get")]
public IActionResult Get()
{
return Ok("GET works fine");
}
[HttpPost("post")]
public IActionResult Post()
{
return Ok("Hello World"); // <-- Keeps returning 400
}
}
GET方法运行良好,但是当我在Postman中向
/api/v1/service/post
发送一个空的POST请求时,我会收到一个错误请求。我还注意到,当我将路由更改为不存在的任何不同或随机内容时,也会得到400而不是404。
因此,对
api/v1/service/this-route-is-not-defined
进行POST调用也会导致错误请求。我一直在更改请求表单中的小细节,添加/删除ContentType或Accept头,并调整我的
StartUp.cs
。但是,我向.NET发出的每个POST调用似乎都会导致400状态代码。编辑
这可能与
Startup.cs
中的路由相关: app.UseHsts();
app.UseMvc(routes =>
{
});
app.UseRouting();
以下是POST man中的请求:
示例代码已被修改为我的原始API方法,但思路相同。我将示例复制到项目中的新文件中,并在Postman中点击“创建新请求”。所以标头是默认的。
/api/v1/service/post
,在问题中提到了/api/v1/service/
。 - Kamil Budziewski/api/v1/service/post
发送请求。 - OCP30pt1c1l1l43-X1z17Startup.cs
类,也许您已经配置路由错误。 - Max