.NET WebApi see raw request
asp.net-web-api
Solution
For your action method, if you send a request with `Content-Type: application/json` and the request message body of `{"name":"john", "age":20}`, it should correctly bind. BTW, you do not need to use `[FromBody]`, since `Test123` is a complex type.
Anyways, you can view the raw request message by adding a message handler like this.
public class MyHandler : DelegatingHandler
{
protected override async Task<HttpResponseMessage> SendAsync(
HttpRequestMessage request,
CancellationToken token)
{
HttpMessageContent requestContent = new HttpMessageContent(request);
string requestMessage = requestContent.ReadAsStringAsync().Result;
return await base.SendAsync(request, token);
}
}
Add the handler like this `config.MessageHandlers.Add(new MyHandler());` in `WebApiConfig.cs` `Register` method. Raw request will be in `requestMessage` variable. You can inspect by breaking there while debugging or write to a trace, etc.
Problem
I have a ``` public void Post([FromBody]Record value) ``` -method that I can call from fiddler with some json. When calling the method from my mac using WizTools RESTClient 3.1 with the same json, the `value` is always `null`. It looks like it does not get parsed or something. I'm using `Content-Type: application/json` on both machines and I have double-checked that the `Request.Content` object the headers in the Visual Studio debugger. If I use a simpler object with only 2 properties like so: ``` public class Test123 { public string name { get; set; } public int age { get; set; } } public void Post([FromBody]Test123 value) ``` I can call it from both fiddler and the mac and the `value` is never null. So any tips on how to debug this? Is there for instance any way for me to see the raw response sent from my mac to iis/visual studio on my PC? It does not show up in fiddler.