fiddler post + webapi 2 问题

fiddler post + webapi 2 issue

这是我的 webapi 2 端点 - MVC 重复建议不相关

[Route("Test2")]
[HttpPost]
public IHttpActionResult Test2([FromBody] Guid? guid)
{
    return Ok();
}

当我使用 fiddler 手动测试时:

Content-Type: application/json

在 header 中,此负载在 body 中:

{"guid":"1c3c8edc-d87a-46dc-adbf-e7112bf16d22"}

方法已命中,但 guid 为空。有什么想法吗?

不能直接反序列化为Guid。现在,您正在从提琴手发送对象,例如:

public class SampleObject
{
     public Guid guid {get; set;}
}

尝试只发送:

"1c3c8edc-d87a-46dc-adbf-e7112bf16d22"

在请求正文中。

您通过 header 发送回复。这就是为什么你得到空值。您必须通过 body 发送请求。

public class Test
{
 public Guid guid {get; set;}
}

您必须像

一样通过 body 发送请求
"1c3c8edc-d87a-46dc-adbf-e7112bf16d22"

如果您想通过 header 发送请求,那么您的代码将像这样

[Route("Test2")]
[HttpPost]
public IHttpActionResult Test2()
{
   IEnumerable<string> headerValues=request.Headers.GetValues("MyCustomID");
   var guid = headerValues.FirstOrDefault();
   return Ok();
}