dotnet core 5 Webapi 向 HTTPPOST 发送 Json 响应

Posted

技术标签:

【中文标题】dotnet core 5 Webapi 向 HTTPPOST 发送 Json 响应【英文标题】:dotnet core 5 Webapi Send Json response to HTTPPOST 【发布时间】:2022-01-09 02:51:59 【问题描述】:
[HttpPost]
    public HttpResponseMessage Post([FromBody] clsTicketInfo ticketInfo)
    
        try
        
            var message = new HttpResponseMessage(HttpStatusCode.OK);
            var data = new Dictionary<string, string>
            
              "id","72832",
              "name","John"
             ;
            var jsonData = JsonConvert.SerializeObject(data);
            message.Content = new StringContent(jsonData, System.Text.Encoding.UTF8, "application/json");
             //      Request.CreateResponse()         
            return message;
           
        
        
        catch (Exception ex)
        
         return   new HttpResponseMessage(HttpStatusCode.BadRequest);
        
            //HttpResponseMessage(HttpStatusCode.Created, ticketInfo);
    

在这段代码中,我想在我的 HTTP POST 中发送 Status ok 和 JSON 数据,但它不起作用。我正在使用 dotnet core 版本 5。

【问题讨论】:

【参考方案1】:

你只需要这个

public ActionResult Post([FromBody] clsTicketInfo ticketInfo)

  return Ok( new   id =72832, name = "John"  );

带有消息的http响应将由net mvc自动创建

【讨论】:

【参考方案2】:

[HttpPost]
    public IActionResult HttpResponseMessage Post([FromBody] clsTicketInfo ticketInfo)
    
        try
        
                
              var data = new Dictionary<string, string>
                        
                           "id","72832",
                           "name","John"
              
                         ;
           var jsonData = JsonConvert.SerializeObject(data);
            return ok(jsonData);
           
        
        
        catch (Exception ex)
        
         return  Badrequest('error':ex.message)
        
            
    

IActionResult 可以在使用 ok,badrequest, notfound 时向前端发送响应。

【讨论】:

您或许应该解释一下为什么这行得通,这就是答案。

以上是关于dotnet core 5 Webapi 向 HTTPPOST 发送 Json 响应的主要内容,如果未能解决你的问题,请参考以下文章

将 JSON 数据发布到 Dotnet Core webapi

dotnet core webapi json-api 兼容查询字符串路由

如何为 dotnet core(web Api) 代码更改以及 TypeScript 代码更改启用实时重新加载

Asp.Net Core WebAPI [dotnet publish --self-contained -r linux-64] 放入Docker容器后是不是真的自包含

使用 xunit 在 webapi 应用程序上运行 dotnet 测试

dotnet core docker web api没有连接