fiddler post + webapi 2 issue

时间:2015-12-05 19:30:11

标签: c# asp.net-web-api asp.net-web-api2

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

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

当我使用fiddler手动测试时使用:

Content-Type: application/json
标题中的

和正文中的有效负载:

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

该方法被命中,但guid为null。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

无法直接反序列化为Guid。现在,你从fiddler发送对象,如:

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

尝试发送:

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

在请求正文中。

答案 1 :(得分:1)

您通过标头发送回复。这就是为什么你得到null。你必须通过正文发送请求。

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

你必须通过身体发送请求

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

如果你想通过标题发送请求,那么你的代码将是这样的

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