2013-12-16 75 views
0

我正在爲我的服務使用ASP.Net Web API,這是從第三方應用程序調用的。當我在Chrome郵遞員中測試它時,它在localhost和部署的服務器上工作正常,但我已經在提琴手中嘗試過,拋出它並且字符串val總是空,我應該添加其他東西嗎?我不明白爲什麼它在郵遞員工作正常!有點瘋了,這個! 在此先感謝ASP.Net Web API參數爲空

public bool PostProperty([FromBody] string val) 
{ 
    try 
    {   
     var reader = new StringReader(val); 
     var serializer = new XmlSerializer(typeof(property)); 
     var instance = (property)serializer.Deserialize(reader); 
    } 
} 
+0

那麼...你發送的請求在哪裏? –

+0

它的第三方應用程序發送xml作爲字符串 – Simon

+0

好吧。那麼請求在哪裏?人們應該如何告訴你爲什麼一個請求沒有看到請求就不會綁定? –

回答

2

更改簽名是

public async Task<bool> PostProperty() 
{ 
    try 
    {   
     var reader = new StringReader(await Request.Content.ReadAsStringAsync()); 
     var serializer = new XmlSerializer(typeof(property)); 
     var instance = (property)serializer.Deserialize(reader); 
    } 
} 

public bool PostProperty([FromBody] property val) 
{ 

} 

如果你這樣做了第二個選項,您可能需要將下面的行添加到您的設置,

config.Formatters.XmlFormatter.UseXmlSerializer = true; 
+0

你是一個天才,看起來像是工作過!感謝 – Simon

+0

Opps說話太快了,現在在XML文檔中出現錯誤(1,1) – Simon

+0

更改爲流式讀取器,現在在路徑中獲取非法字符。幫助! – Simon