在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.

Asp.net core中HttpResponse常用属性及Status code的更多相关文章

  1. ASP.NET Core中使用自定义MVC过滤器属性的依赖注入

    除了将自己的中间件添加到ASP.NET MVC Core应用程序管道之外,您还可以使用自定义MVC过滤器属性来控制响应,并有选择地将它们应用于整个控制器或控制器操作. ASP.NET Core中常用的 ...

  2. ASP.NET Core中如果Response.HasStarted已经为true,就不能更改Response.Cookies和Response.Headers等属性的值了

    最近我在ASP.NET Core中做了一个中间件CustomizedMiddleware,要说该中间件的功能也很简单,其实就是往HttpResponse中添加一个Cookie而已,但是我将添加Cook ...

  3. ASP.NET Core中使用IOC三部曲(二.采用Autofac来替换IOC容器,并实现属性注入)

    前言 本文主要是详解一下在ASP.NET Core中,自带的IOC容器相关的使用方式和注入类型的生命周期. 这里就不详细的赘述IOC是什么 以及DI是什么了.. emm..不懂的可以自行百度. 目录 ...

  4. ASP.NET Core Web 应用程序系列(三)- 在ASP.NET Core中使用Autofac替换自带DI进行构造函数和属性的批量依赖注入(MVC当中应用)

    在上一章中主要和大家分享了在ASP.NET Core中如何使用Autofac替换自带DI进行构造函数的批量依赖注入,本章将和大家继续分享如何使之能够同时支持属性的批量依赖注入. 约定: 1.仓储层接口 ...

  5. ASP.NET Core中使用Autofac进行属性注入

    一些无关紧要的废话: 作为一名双修程序员(自封的),喜欢那种使用Spring的注解形式进行依赖注入或者Unity的特性形式进行依赖注入,当然,形式大同小异,但结果都是一样的,通过属性进行依赖注入. A ...

  6. ASP.NET Core中的响应压缩

    介绍     响应压缩技术是目前Web开发领域中比较常用的技术,在带宽资源受限的情况下,使用压缩技术是提升带宽负载的首选方案.我们熟悉的Web服务器,比如IIS.Tomcat.Nginx.Apache ...

  7. ASP.NET Core 中文文档 第三章 原理(6)全球化与本地化

    原文:Globalization and localization 作者:Rick Anderson.Damien Bowden.Bart Calixto.Nadeem Afana 翻译:谢炀(Kil ...

  8. 在ASP.NET Core中使用Angular2,以及与Angular2的Token base身份认证

    注:下载本文提到的完整代码示例请访问:How to authorization Angular 2 app with asp.net core web api 在ASP.NET Core中使用Angu ...

  9. 谈谈ASP.NET Core中的ResponseCaching

    前言 前面的博客谈的大多数都是针对数据的缓存,今天我们来换换口味.来谈谈在ASP.NET Core中的ResponseCaching,与ResponseCaching关联密切的也就是常说的HTTP缓存 ...

  10. 在ASP.NET Core中使用brotli压缩

    Brotli是一种全新的数据格式,可以提供比Zopfli高20-26%的压缩比.据谷歌研究,Brotli压缩速度同zlib的Deflate实现大致相同,而在Canterbury语料库上的压缩密度比LZ ...

随机推荐

  1. 音乐在线刮削容器部署(Music Tag Web)

    『音乐标签』Web版是一款可以编辑歌曲的标题,专辑,艺术家,歌词,封面等信息的音乐标签编辑器程序, 支持FLAC, APE, WAV, AIFF, WV, TTA, MP3, M4A, OGG, MP ...

  2. win11 输入法自定义短语输出日期时间变量

    自定义短语中输入%yyyy%-%MM%-%dd% %HH%:%mm%:%ss%

  3. 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库

    前言 今天大姚给大家分享一套基于 Material Design 规范实现的.开源(MIT license)且免费的 Blazor 和 Razor 通用组件库:MatBlazor. Blazor介绍 ...

  4. C# Quartz 调度任务辅助类

    1 public class QuartzHelper 2 { 3 /// <summary> 4 /// 时间间隔执行任务 5 /// </summary> 6 /// &l ...

  5. 自己写的第一个java项目!

    项目名为"零钱通" 细节参考 [零基础 快速学Java]韩顺平 零基础30天学会Java 基本版: 1 package project; 2 3 import java.text. ...

  6. MS17_010漏洞利用,渗透win7,拿到桌面的flag

    关于使用MS17_010来攻击WIN7: 我们先ping一下win7的ip看看是否可以ping通(ping不通的可以关闭win7的防火墙),然后我们用nmap扫一下看看靶机有什么漏洞 nmap --s ...

  7. golang gin框架使用swagger生成接口文档

    前言 一份清晰明了的接口文档能够极大地提高前后端双方的沟通效率和开发效率. 本文将介绍如何使用swagger生成接口文档. swagger介绍 Swagger本质上是一种用于描述使用JSON表示的RE ...

  8. ORACLE数据挖掘之 MSET-SPRT

    虽然是熟悉的Oracle数据库,但关于机器学习.数据挖掘这方面的知识笔者起初也是不了解的,文中MSET相关设置来源于同事提供的sample,在测试过程中边查资料边学习吸收,也因此看到了别样的Oracl ...

  9. Linux权限与特殊权限

    目录 5.1 权限讲解 5.1.1 什么是权限 5.1.2 为什么要管理权限 5.1.3 权限的分类 5.1.4 Linux的文件属于谁? 5.1.5 文件属主.属组.其他用户 5.1.6 所属者的表 ...

  10. EBUSY: resource busy or locked, rmdir

    方案一: 方案二: !!! 出现问题后,千万不要忽略npm提示你的警告... 如果以上两种方案还未解决,那么大概率是因为你的npm版本较低导致的,升级你的npm. cnpm install -g np ...