2013-06-29 72 views
0

我想一些东西到我的Web API,但不管我做什么模型值始终设置为null获取值。型号不从POST请求

我曾尝试以下要求(跟踪从小提琴手复制):

POST http://localhost:53176/api/Profile HTTP/1.1 
Host: localhost:53176 
Connection: keep-alive 
Content-Length: 40 
Accept: application/xml, text/xml, */*; q=0.01 
Origin: http://localhost:53176 
X-Requested-With: XMLHttpRequest 
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36 
Content-Type: application/x-www-form-urlencoded 
Referer: http://localhost:53176/SignUp 
Accept-Encoding: gzip,deflate,sdch 
Accept-Language: en-US,en;q=0.8 
Cookie: ASP.NET_SessionId=do5ddqwghl3v0bhlgr3pyicb 

{"InputEmail":"aa","UserName":"asd"} 

更新 并且还与以下:

POST http://localhost:53176/api/Profile HTTP/1.1 
Host: localhost:53176 
Connection: keep-alive 
Content-Length: 44 
Accept: application/json, text/javascript, */*; q=0.01 
Origin: http://localhost:53176 
X-Requested-With: XMLHttpRequest 
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36 
Content-Type: application/json 
Referer: http://localhost:53176/SignUp 
Accept-Encoding: gzip,deflate,sdch 
Accept-Language: en-US,en;q=0.8 
Cookie: ASP.NET_SessionId=do5ddqwghl3v0bhlgr3pyicb 

{"InputEmail":"asdas","UserName":"dasd"} 

我的API是这样的:

//here I have also tried [FromBody] 
    public MyDto Post(MyDto input) 
    { 
     return input; 
    } 

MyDto有两个PROPERT是,并且是:

public class MyDto 
{ 
    string InputEmail { get; set; } 
    string UserName { get; set; } 
} 

有人能告诉我这段代码有什么问题,或者有什么我缺少的东西吗?

我也想知道如何(或者)我可以把调试某处的WebAPI代码里面看到什么实际的请求的WebAPI试图反序列化之前。

回答

1

Content-Type头是application/x-www-form-urlencoded,但你的身体有JSON数据。修改您的Content-Type头是要么application/jsontext/json

编辑: 让你的特性Public

+0

没有它不与它正常工作。我已经用新请求编辑了这个问题。 – sttaq

+1

'Content-Type:text/json;字符集= UTF-8'也没有工作 – sttaq

+0

如果可能的话,你能告诉我怎样才能把调试某处的WebAPI代码里面看到什么实际的请求时,它会尝试反序列化之前。 – sttaq