gpt4 book ai didi

c# - 通过 ApiController 将 JSON 发布到 Azure 队列

转载 作者:太空宇宙 更新时间:2023-11-03 23:35:55 28 4
gpt4 key购买 nike

我正在尝试在 ASP.NET Web API 中的 ApiController 上接收 POST 并将其添加到 Azure 队列。我遇到的问题是,我此时不想将待办事项参数绑定(bind)到类的属性,而是将 JSON 作为字符串在 Azure 队列中排队,以便我可以让辅助角色在其中处理它自己的时间。

我正在使用 Fiddler 进行 POST,如下所示:

User-Agent: Fiddler
Host: localhost:50348
Content-Type: application/json
Content-Length: 34

使用此请求正文:

{"text":"pineapple","user":"fred"}

这是我的 Controller (为了清晰起见,稍微简化了一些):

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)而不绑定(bind)它,而是将整个内容作为字符串添加到 Azure 队列中。

有什么想法吗?我错过了什么还是我的方法错了?

最佳答案

您可以简单地使用 Json.Net 序列化您的对象通过执行以下操作:

var serializedData = JsonConvert.SerializeObject(message);
var msg = new CloudQueueMessage(serializedData);
queue.AddMessage(msg);

关于c# - 通过 ApiController 将 JSON 发布到 Azure 队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30608730/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com