首页 > 编程语言 >Asp.net core中HttpResponse常用属性及Status code

Asp.net core中HttpResponse常用属性及Status code

时间:2023-10-11 12:44:07浏览次数:29  
标签:Status core Asp HTTP id 响应 fruit HttpResponse response

在ASP.NET Core中,HttpResponse 表示HTTP响应,其中包括一些常用的属性和方法,用于设置HTTP响应的各种属性。HTTP响应通常由一个HTTP状态码,HTTP头(headers),和HTTP主体(body)组成。以下是一些常用的 HttpResponse 属性和一些常见的HTTP状态码及其含义:

HttpResponse 常用属性:

StatusCode: 用于设置HTTP响应的状态码,如 200、404、500 等。

ContentType: 用于设置HTTP响应的内容类型(MIME类型),例如 "application/json"、"text/html"。

Headers: 用于添加或修改HTTP响应头信息,如设置响应的缓存策略、允许的跨域请求等。

Cookies: 用于操作响应中的HTTP cookies,包括添加、修改、删除等操作。

Body: 用于设置HTTP响应的主体内容。通常,您可以使用 response.WriteAsync() 方法来将内容写入响应主体。

常见的HTTP状态码及其含义:

200 OK: 请求成功。服务器已成功处理了请求。

201 Created: 已创建。服务器已成功创建了资源。

204 No Content: 无内容。服务器成功处理请求,但没有返回任何内容。

400 Bad Request: 请求无效。通常是因为请求参数或语法错误。

401 Unauthorized: 未授权。需要进行身份验证或授权才能访问资源。

403 Forbidden: 禁止访问。服务器理解请求,但拒绝提供服务。

404 Not Found: 未找到。请求的资源不存在。

500 Internal Server Error: 服务器内部错误。通常是服务器端代码错误导致的。

503 Service Unavailable: 服务不可用。服务器当前无法处理请求,通常是临时性的。

public static void Main(string[] args)
        {
            WebApplicationBuilder builder = WebApplication.CreateBuilder(args);
            WebApplication app = builder.Build();
            ConcurrentDictionary<string, Fruit> _fruit = new ConcurrentDictionary<string, Fruit>();
            app.MapGet("/fruit", () => _fruit);
            app.MapGet("/fruit/{id}", (HttpResponse response,string id) =>
            {
                var ifSuccess=_fruit.TryGetValue(id, out var fruit);
                if (!ifSuccess)
                {
                    response.StatusCode = 404;
                    response.ContentType = MediaTypeNames.Text.Plain;
                    return response.WriteAsync($"没有发现id={id}的fruit");
                }
                string jsonFruit = JsonSerializer.Serialize(fruit, new JsonSerializerOptions
                {
                    PropertyNamingPolicy = JsonNamingPolicy.CamelCase
                });
                response.StatusCode = 200;
                response.ContentType = MediaTypeNames.Application.Json;
                return response.WriteAsync(jsonFruit);

            });
            app.MapPost("/fruit/{id}", ( Fruit fruit,string id,HttpResponse response) =>
            {
                var ifSuccess = _fruit.TryAdd(id, fruit);
                if (!ifSuccess)
                {
                    response.StatusCode = 418;
                    response.ContentType=MediaTypeNames.Text.Plain;
                    return response.WriteAsync($"已存在id={id}的fruit");

                }
                response.StatusCode = 201;
                response.ContentType = MediaTypeNames.Text.Plain;
                return response.WriteAsync($"已存入");
            });
            app.Run();
        }

以及从以上代码可以看出:传入的参数顺序并不固定,可以string id,Fruit fruit,HttpResponse res,也可以Fruit fruit,HttpResponse res,string id.

标签:Status,core,Asp,HTTP,id,响应,fruit,HttpResponse,response
From: https://www.cnblogs.com/johnyang/p/17756817.html

相关文章

  • 《这是新的EF CORE》
    博客园是一个面向开发者的知识分享社区。自创建以来,博客园一直致力并专注于为开发者打造一个纯净的技术交流社区,推动并帮助开发者通过互联网分享知识,从而让更多开发者从中受益。博客园的使命是...博客园是一个面向开发者的知识分享社区。自创建以来,博客园一直致力并专注于为开......
  • 报错Intel MKL FATAL ERROR: Cannot load libmkl_core.so.的一种解决方法
    问题今天上80服务器跑mdistiller的代码时,意外发现torch、numpy都不能用了T_T以torch为例,出现如下报错情况以numpy为例,出现如下报错情况我们先看看报错信息,这个报错来自InterMKL。InterMKL全称是TheIntelMathKernelLibrary,它是一个主要是用于科学计算的共享库,提供了很......
  • .net core linux下使用SkiaSharp实现图形验证码
    linux下使用c#自带的获取验证码需要安装图形处理插件比较麻烦 安装nugit依赖SkiaSharp.NativeAssets.Linux.NoDependencies  添加helper类SkiaSharpValidateCodeHelper.csusingSkiaSharp;usingSystem.Text;namespaceVerifyCode.Helpers{publicclassSkia......
  • Asp.Net Core webapi+net6 使用资源筛选器(过滤器) 做缓存
    写一个特性类,用来做标记[AttributeUsage(AttributeTargets.Method)]//只对方法有效publicclassResourceFilterAttribute:Attribute{}我这里使用了MemoryCache来做缓存,也可以使用字典来做,但一定要加上static,否则字典每一次请求都会new一个实例,缓存的东西就丢了private......
  • ASP .Net Core: AutoMapper与DTO的使用(自定类型转换)
    建立DTO物件创建名为Dtos文件夹,并添加TodoListSelectDto文件publicclassTodoListSelectDto{publicGuidTodoId{get;set;}publicstringName{get;set;}=null!;publicDateTimeInsertTime{get;set;}publicDateTimeUpdateTime{get......
  • .Net Core 统一全局处理字符串为Null问题
    services.AddControllersWithViews().AddNewtonsoftJson(options=>{//设置序列化时间格式options.SerializerSettings.DateFormatString="yyyy-MM-ddHH:mm:ss";options.Serializ......
  • .Net Core 中GUID字符串的几种格式化
    NET下的Guid格式化有如下五种:1.Guid.NewGuid().ToString("N")获取32位不包含“-”号的GUID字符串例如:1c64d58a9e834bfe8d053555d81453d02.Guid.NewGuid().ToString("D")获取32位包含“-”号的GUID字符串,默认格式例如:ae8672ac-a987-43f3-a7c2-ac7b3249ac7b3.Guid.NewGuid().......
  • NetCore Ocelot 之 Cache
    OcelotsupportssomeveryrudimentarycachingatthemomentproviderbytheCacheManagerproject.Thissanamazingprojectthatissolvingalotofcachingproblems.IwouldrecommendusingthispackagetocachewithOcelot.Thefollowingexampleshowsh......
  • .net core 接收xml、text/plain格式参数
    1、接收xmlcontroller中写法如下[HttpPost,ActionName("Sign_off")][Produces("application/xml")]//接收[Consumes("application/xml")]//返回publicasyncTaskSign_off([FromBody]XmlDocumentxmldoc){.....//你的业务逻辑}Startup.cs中的ConfigureSer......
  • ASP .Net Core: 使用EF连接postgresql
    备注关于数据库的创建,可参考下方的链接,去创建测试环境,我已经有现成的数据库,故不再记录创建数据库的过程。实现步骤安装EF工具dotnettoolinstall--globaldotnet-ef安装其他依赖dotnetaddpackageNpgsql.EntityFrameworkCore.PostgreSQLdotnetaddpackageMicrosoft.E......