我試圖在ASP.NET Web API中的ApiController上接收POST並將其添加到Azure隊列中。 我遇到的問題是,我不想在此時將todo參數綁定到類的屬性,而是將JSON作爲Azure隊列中的字符串排隊,這樣我就可以獲得一個輔助角色來處理它這是自己的時間。通過ApiController將JSON發佈到Azure隊列
我使用招做看起來像這樣的POST:
User-Agent: Fiddler
Host: localhost:50348
Content-Type: application/json
Content-Length: 34
有了這個請求體:
{"text":"pineapple","user":"fred"}
這是我的控制器(簡單一點的清晰度):
public class MessagesController : ApiController
{
// POST api/messages
public void Post([FromBody] Message message)
{
var storage = CloudStorageAccount.DevelopmentStorageAccount;
var queueClient = storage.CreateCloudQueueClient();
var queue = queueClient.GetQueueReference("messages");
if (queue.CreateIfNotExists())
{
Trace.WriteLine("Hello world for the first time");
}
var msg = new CloudQueueMessage(message.text);
queue.AddMessage(msg);
}
這是使用消息類,它看起來像這樣:
public class Message
{
public string user { get; set; }
public string text { get; set; }
}
這一切工作正常,但我只是想抓住請求的身體(即JSON)並且不綁定它,而是將整個事件作爲字符串添加到Azure隊列中。
任何想法?我錯過了什麼,或者我的方法錯了嗎?
你想發佈'{「文本」:「菠蘿」,「用戶」:「弗雷德」},而不是隻菠蘿作爲郵件正文。我對麼? –
@GauravMantri是的,這是正確的,JSON的整個查克:) –