Я пытаюсь получить POST на ApiController в веб-API ASP.NET и добавить его в очередь Azure. Проблема, с которой я столкнулся, заключается в том, что я не хочу делать привязку параметра к свойствам класса на данный момент, а скорее ставлю JSON в очередь в виде строки в очереди Azure, чтобы я мог получить рабочую роль для обработки этого в своем собственное время.
Я использую Fiddler для выполнения 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);
}
Это работает с классом Message, который выглядит так:
public class Message
{
public string user { get; set; }
public string text { get; set; }
}
Все это работает нормально, но я просто хочу получить тело запроса (то есть JSON) и не привязывать его, а вместо этого добавить все это в очередь Azure в виде строки.
Любые идеи? Я что-то упустил или мой подход просто неверен?
{"text":"pineapple","user":"fred"}
вместоpineapple
в теле сообщения. Я прав? - person Gaurav Mantri   schedule 03.06.2015