在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. 寻找旋转排序数组中的最小值 II

    地址:https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array-ii/ <?php /** 154. 寻找旋转排 ...

  2. iview weapp输入组件input事件顺序

    做小程序,使用ivew weapp组件框架,同时用到了i-input和i-modal,更具体说,就是在modal里面放置了input,填写数据后点击确定,实现提交数据. 出现点小问题,发现是事件顺序导 ...

  3. 在B站刷学习视频时如何知道剩余分集视频总时长?

    在B站刷学习视频时如何知道剩余分集视频总时长? 转载于:bilibili笔记 作者:丶whimmy 前言 最近在B站刷黑马的前端视频课.然而每次看视频都不知道还剩多少时长,制定计划时都很苦恼. 多达4 ...

  4. Linux运维必备:sort 命令快速上手指南

    作为运维工程师,处理日志.分析数据是家常便饭.sort命令是Linux中高效整理文本的神器,能快速对文件内容排序.去重.统计.本文用最简洁的方式,帮你掌握sort的核心用法. 一.基础排序:秒杀杂乱文 ...

  5. Wyn商业智能V8.0 Update1版本发布

    智启未来,Wyn商业智能V8.0 Update1版本深度融合AI技术.工业物联网与数据工程能力,带来三大核心亮点及100+新特性,致力于为企业打造全场景智能分析平台,助力构建从数据加工到智能决策的全链 ...

  6. RabbitMQ持久化+消息执行优先级

    持久化   channel.QueueDeclare(queue:"hello",//队列名 durable:true,//持久化  exclusive:false,//排他性,该 ...

  7. 字符串成员方法:截取、替换、切割 及String成员方法小结

    1.截取 subString() subString()方法有两种使用方式: 1.第一种是在括号里只放入一个索引,这时将会从放入的索引为起点,一直截取到末尾 2.第二种是在括号里放入两个索引,分别对应 ...

  8. 【JVM之内存与垃圾回收篇】本地方法接口

    本地方法接口 什么是本地方法 简单地讲,一个 Native Method 是一个 Java 调用非 Java 代码的接囗.一个 Native Method 是这样一个 Java 方法:该方法的实现由非 ...

  9. 白话kotlin协程

    文章同步发布于公众号:移动开发那些事白话kotlin协程 1 什么是协程 Kotlin协程(Coroutine)是一种轻量级的线程管理框架,允许开发者以更简洁,更高效的方式处理异步操作,避免回调地狱和 ...

  10. Anonymous打靶学习笔记(5)

    参考视频https://www.bilibili.com/video/BV1XufaYAEKc/?spm_id_from=333.1387.search.video_card.click 常见的100 ...