Я пытаюсь получить POST на ApiController в веб-интерфейсе ASP.NET и добавить его в Azure Queue. Проблема, с которой я сталкиваюсь, заключается в том, что я не хочу привязывать параметр к свойствам класса в данный момент, но вместо очереди JSON в качестве строки в очереди Azure, чтобы я мог получить роль рабочего, чтобы справиться с ней в это собственное время.Проводка JSON в Azure Queue через ApiController
Я использую 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);
}
Работает с классом сообщений, который выглядит так:
public class Message
{
public string user { get; set; }
public string text { get; set; }
}
Это все работает нормально, но я просто хочу захватить тело запроса (т. JSON) и не связывать его, а вместо этого добавить все это в Azure Queue как строку.
Любые идеи? Я что-то упускаю, или мой подход ошибочен?
Вы хотите отправить сообщение '{" text ":" ананас "," пользователь ":" fred "}' вместо простого ананаса в качестве тела сообщения. Я прав? –
@GauravMantri yep, это правильно, весь патрон JSON :) –