首页
学习
活动
专区
圈层
工具
发布

Asp.Net Web API中使用Session,Cache和Application的几个方法

在ASP.NET中,Web Api的控制器类派生于ApiController,该类与ASP.NET的Control类没有直接关系,因此不能像在Web MVC中直接使用HttpContext,Cache...,Session等,要使用的话,一般是从System.Web.HttpContext.Current静态对象引用HttpContext,从而使用Session等状态数据。    ...不过,要在控制器类中通过HttpContext的Session属性直接使用Session状态数据,将抛出nullreference异常,网查主要有两种解决方案,一个是重载Global的init()方法,...在该方法中开放Session状态,另一个设计带Session的路由处理器     重载Global的Init() public class WebApiApplication : System.Web.HttpApplication...{ route.MapHttpRoute( name: "WebApiRoute1", routeTemplate: "api

1.8K10

如何让ASP.NET Web API的Action方法在希望的Culture下执行

在今天编辑推荐的《Hello Web API系列教程——Web API与国际化》一文中,作者通过自定义的HttpMessageHandler的方式根据请求的Accep-Language报头设置当前线程UI...如果你对ASP.NET Web API的执行机制有足够了解的话,你会发现实际上有很多种解决方案。...不过这些解决方案都不够完美,原因很简单:ASP.NET Web API的整个框架均采用基于Task的并行编程模式,所以每个可扩展组件均可以在不同的线程中执行,这样会导致我们没有办法100%控制目标方法真正执行的线程的...Web API利用一个名为HttpActionSelector的对象来选择与当前请求匹配的HttpActionDescriptor,要让我们自定义的ExtendedReflectedHttpActionDescriptor...ASP.NET Web API默认使用的HttpActionSelector类型为ApiControllerActionSelector,我们自定义的ExtentedApiControllerActionSelector

1.7K90
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    HTTP错误代码大全

    如果问题依然存在,请与 Web 服务器的管理员联系。 403.3 禁止:禁止写访问 如果试图上载或修改不允许写访问的目录中的文件,就会导致此问题。...HTTP 错误 405 405 不允许此方法 对于请求所标识的资源,不允许使用请求行中所指定的方法。请确保为所请求的资源设置了正确的 MIME 类型。...如果问题依然存在,请与 Web 服务器的管理员联系。 403.3 禁止:禁止写访问 如果试图上载或修改不允许写访问的目录中的文件,就会导致此问题。...HTTP 错误 405 405 不允许此方法 对于请求所标识的资源,不允许使用请求行中所指定的方法。请确保为所请求的资源设置了正确的 MIME 类型。...HTTP 错误 405 405 不允许此方法 对于请求所标识的资源,不允许使用请求行中所指定的方法。请确保为所请求的资源设置了正确的 MIME 类型。

    4.8K20

    HTTP接口设计

    主要使用场景在于实现并发控制 客户端错误 400 Bad Request : 请求体包含语法错误 401 Unauthorized : 需要验证用户身份,如果服务器就算是身份验证后也不允许客户访问资源...Method Not Allowed : 不允许执行目标方法,响应中应该带有 Allow 头,内容为对该资源有效的 HTTP 方法 406 Not Acceptable : 服务器不支持客户端请求的内容格式...服务端错误 500 Internal Server Error : 服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。...501 与 405 的区别是:405 是表示服务端不允许客户端这么做,501 是表示客户端或许可以这么做,但服务端还没有实现这个功能 身份验证 OAuth 2.0 官网 理解OAuth 2.0 - 阮一峰...以及对文中 `state` 参数的介绍的修正 JSON Web Token,一种 Token 的生成标准 Json Web Tokens: Introduction Json Web Tokens:

    2.3K20

    使用最小WEB API实现文件上传

    本文将详细介绍如何使用 .NET 6 和 ASP.NET Core 构建一个最小化的Web API来实现文件上传功能。...一、项目准备我们使用 ASP.NET Core 6 来搭建一个最小的 Web API 项目。...首先确保你已经安装了最新版本的 .NET 6 SDK,可以通过以下命令检查:dotnet --version1.1 创建项目打开命令行工具,使用以下命令创建一个新的 ASP.NET Core Web API...2.2 处理上传文件的核心要点文件大小限制:为了防止大文件上传导致内存或磁盘空间的浪费,通常需要限制文件的大小。文件存储路径:在实际应用中,我们通常需要将上传的文件存储在服务器的指定目录或者云存储中。...安全性:文件上传功能容易成为黑客攻击的入口,需要验证文件类型,避免恶意文件上传。三、文件上传实现步骤3.1 接收文件首先,我们需要在 API 接口中接收上传的文件。

    5.5K30

    用ASP.NET Core 2.0 建立规范的 REST API -- GET 和 POST

    html 本文介绍的是使用ASP.NET Core建立Richardson成熟度为2级的伪RESTful web API, 本文介绍的是GET和POST....状态码 状态码是非常重要的,因为只有状态码会告诉API的消费者: 请求是否如预期的成功,或者失败 如果出现了错误,谁该为这个错误负责 下面再列举一下web API会用到的状态码: 200级别,表示成功:...,表示请求的资源不存在 405 - Method not allowed,这就是当我们尝试发送请求给某个资源时,使用的HTTP方法却是不允许的,例如使用POST api/countries, 而该资源只实现了...500级别,服务器错误: 500 - Internal server error,这表示是服务器发生了错误 回到刚才的那两个方法,默认情况下 JsonResult会返回200 OK状态码,可以去修改JsonResult...然后, 还需要对应这个POST Action 做一个GET集合的Action 方法: ?

    2.2K10

    Contact Manager Web API 示例CRUD 操作

    联系人管理器web API是一个Asp.net web api示例程序,演示了通过ASP.NET Web API 公开联系信息,并允许您添加和删除联系人,示例地址http://code.msdn.microsoft.com...PUT 也能拿来"新增"使用,如果服务器允许 Client 去指定新的 URI。那范例的联系人管理将不允许使用 PUT 来新增。 · POST 新增。...但按照 HTTP/1.1 协议,当一个 POST 请求会导致资源的建立,服务器应该响应的状态代码为 201 (Created)。...因此,如果联系人已经被删除,方法应该不能回传错误码。...CRUD 操作总结 在使用 ASP.NET Web API Framework 时,你能发现与 HTTP/1.1 规范有很大关连性,以前较很少关心与了解的内容,例如,PUT、DELETE、POST的处理

    1.2K90

    记录一下 http status code

    HTTP Method 较为简单,我们常用的习惯如下: 一般查询我们都会使用 GET 方法, 创建新的记录使用 POST 方法 更新已有数据使用 PUT 方法 更新已有数据部分属性使用 PATCH 方法...101 Switching Protocol,协议转换,在使用 Web Socket 的时候就会遇到,下面是一个示例,响应会有一个 Connection:Upgrade 的请求头, Upgrade 会指定要使用的协议名称...请求,重定向后会使用 GET 请求且 Body 数据会丢失 307、308 支持 POST 请求,在 POST 重定向的时候会带上原来请求的 body 再请求新的地址,body 数据不会丢失 302、307...Token 等 403 Forbidden,禁止访问,当前用户没有权限访问资源,如需要Admin角色的用户,但是请求的用户没有这个角色 404 NotFound,未找到资源,资源不存在 405 Method...Not Allowed,不允许的方法调用,资源不支持的请求方法,比如资源只允许 GET 请求,但是实际请求使用了 POST 或 DELETE 方法 406 Not Acceptable,请求的资源客户端不支持处理

    1.5K20

    Http 405_android与服务器交互

    因为现在都用的spring配置的,很少用到servlet了,今天想写一个demo,结果报了一个405的错误…………………真的是打扰了……. 405概念 请求行中指定的请求方法不能被用于请求相应的资源...该响应必须返回一个Allow 头信息用以表示出当前资源能够接受的请求方法的列表。   ...鉴于 PUT,DELETE 方法会对服务器上的资源进行写操作,因而绝大部分的网页服务器都不支持或者在默认配置下不允许上述请求方法,对于此类请求均会返回405错误。...其实就是说你访问了不是你能访问了,例如你使用post方法访问静态资源,Apache、IIS、Nginx等绝大多数web服务器,都不允许静态文件响应POST请求 那么我的这个问题是在哪里呢?..., msg); } else { resp.sendError(400, msg); } } 你看,这里,只要http 协议是1.1就返回405,不然就返回400,反正就是直接报错….

    1.3K20

    5个REST API安全准则

    必须确保传入的HTTP方法对于会话令牌/API密钥和相关资源集合,操作和记录都是有效的。 例如,如果您有一个RESTful API的库,不允许匿名用户删除书目录条目,但他们可以获得书目录条目。...(4)防止跨站点请求伪造 对于RESTful Web服务公开的资源,重要的是确保任何PUT,POST和DELETE请求都受到防止跨站点请求伪造的保护。 通常,使用基于令牌的方法。...200 OK -回应一个成功的REST API的行动。HTTP方法可以是GET,POST,PUT,PATCH或DELETE。 400错误请求 -请求格式错误,如消息正文格式错误。...405不允许的方法 -意外的HTTP方法的错误检查。 例如,RestAPI期待HTTP GET,但使用HTTP PUT。...遵循这些准则将导致更安全和高质量的REST API服务和更多的开发人员友好的REST API。

    5.1K10

    语音通知接口调用实战:编写稳定的API请求与异常重试逻辑

    在项目开发中,语音通知接口调用是实现订单提醒、验证码下发、系统告警的核心环节,但开发者常因参数错误、无重试逻辑、异常处理不足导致接口调用不稳定,甚至出现通知丢失的问题。...)、templateid遗漏、动态密码生成逻辑错误,导致请求直接返回405/406等错误码。...3.1基础请求代码实现首先编写基础的请求代码,包含动态密码生成、参数拼接、请求发送,同时标注关键参数的获取方式:展开代码语言:PHPAI代码解释的针对性处理针对语音通知接口调用返回的常见状态码,整理差异化处理方案:code=405(用户名/密码错误):核对account/password,确认从正确的用户中心获取;code=406...掌握这些方法,就能有效解决语音通知接口调用不稳定的问题,保障业务通知的精准触达。

    8510

    10个有关RESTful API良好设计的最佳实践

    Web API已经在最近几年变成重要的话题,一个干净的API设计对于后端系统是非常重要的。   ...通常我们为Web API使用RESTful设计,REST概念分离了API结构和逻辑资源,通过Http方法GET, DELETE, POST 和 PUT来操作资源。   ...下面是进行RESTful Web API十个最佳实践,能为你提供一个良好的API设计风格。...car 该方法不允许(405) 更新一个指定的资源 擅长指定资源 不要使用: /getAllCars /createNewCar /deleteAllRedCars 2.Get方法和查询参数不应该涉及状态改变.../v1/errors/12345" } ] } 10.允许覆盖http方法 一些代理只支持POST 和 GET方法, 为了使用这些有限方法支持RESTful API,需要一种办法覆盖http原来的方法

    89750

    使用ASP.NET Core 3.x 构建 RESTful API - 3.3 状态码、错误故障、ProblemDetails

    HTTP状态码 HTTP状态码会告诉API的消费者以下事情: 请求是否执行成功了 如果请求失败了,那么谁为它负责 HTTP的状态码有很多,但是Web API不一定需要支持所有的状态码。...例如告诉搜素引擎,某个页面的网址已经永久的改变了。绝大多数的Web API都不需要使用这类状态码。...not allowed,当尝试发送请求到资源的时候,使用了不被支持的HTTP方法时,就会返回405状态码; 406 - Not acceptable,这表示API消费者请求的表述格式并不被Web...故障确实会对API整体的可用性造成影响。 ProblemDetails 当ASP.NET Core 大约在 2.1 版本的时候,它引入了 ProblemDetails。...例如,当返回类型为 IActionResult 的方法返回客户端错误状态码的时候(4xx),同时还会返回一个body,这个 body 就是 ProblemDetails。

    2K20

    C#短信验证码API示例代码:基于HTTP请求的完整实现

    在后端开发中,短信验证码是用户验证、身份校验的核心功能,而基于C#实现短信验证码API对接时,开发者常因请求参数格式错误、状态码解析不当导致集成失败。...,导致请求被服务端拒绝;参数传递不规范,比如mobile字段格式错误、content变量拼接不符合模板要求;响应状态码解析不完整,无法精准定位405(APIID/KEY错误)、407(敏感字符)等问题;...二、短信验证码API的核心原理与请求规范要写出可靠的C#示例代码,首先需理解短信验证码API的底层请求逻辑,以主流的短信服务接口为例,其核心规范如下:2.1HTTP请求方式与字符编码要求该类API同时支持...三、C#短信验证码API示例代码实战基于上述原理,下面提供完整的c#短信验证码API示例代码,涵盖GET/POST两种请求方式,可直接复制使用。...总结C#对接短信验证码API的核心是正确配置HTTP请求头(Content-Type)和参数格式,优先使用POST方式保证安全性;调试c#短信验证码API示例代码时,需重点关注响应状态码,通过状态码快速定位账号

    9810

    同源策略与CORS

    不同源下,浏览器不允许js操作Cookie、LocalStorage、DOM等数据或页面元素,也不允许发送ajax请求,同源下则不受影响。...简单请求 满足以下三点即为简单请求: HTTP请求方法为GET、POST或HEAD HTTP请求头只能包含Accept, Accept-Language, Content-Language, Content-Type...一个问题 上周在ASP.NET Web API 2中使用CORS,报错:The 'Access-Control-Allow-Origin' header contains multiple values...经过排查发现在Web.config文件中也配置了CORS,与代码中的配置重复,注释掉之后问题解决。该问题参考了:stackoverflow上的回答。...严格的限制会导致一些不便,故同源策略开了几个口子: Cookie共享 子域名可以共享父级域名的cookie 嵌入式资源获取 ,,等标签获取资源不受同源策略限制,这也是

    1.5K40

    语音通知接口集成教程:手把手带你完成API环境搭建与联调测试

    一、语音通知接口集成的常见痛点与解决思路开发者在进行语音通知接口集成时,经常遇到以下问题,这些问题也是导致集成效率低、联调失败的核心原因:核心参数混淆:比如将静态APIKEY和动态密码混用,导致鉴权失败...;数据格式错误:mobile参数格式不规范(如包含非数字字符)、content变量拼接错误;状态码解读困难:面对405、408等状态码,无法快速定位问题根源;环境隔离缺失:测试环境与生产环境凭证混用,导致误发语音通知...二、语音通知接口集成核心原理拆解语音通知接口集成的本质是客户端与服务端的HTTP通信,核心是按照接口规范传递正确的参数,并处理服务端返回的响应结果。只有理解底层原理,才能从根本上避免集成中的常见错误。...3.1准备工作:获取API凭证要完成语音通知接口集成,首先需要从服务商处获取有效的API凭证(account和password)。...>3.3联调测试与常见问题排查完成代码编写后,进行联调测试,重点关注以下问题及解决方法:状态码405:用户名或密码不正确→核对account和password是否与服务商用户中心的凭证一致;状态码406

    10810

    iOS语音验证码接口API示例代码:Swift与Xcode环境下的语音验证开发

    在iOS应用开发中,语音验证码接口的集成是用户身份验证场景的核心需求,但很多开发者在Swift与Xcode环境下对接时,常因参数配置、签名生成、状态码解析等问题导致接口调用失败。...一、iOS语音验证码接口开发的核心痛点与解决思路开发者在对接ios语音验证码接口API示例代码时,往往会遇到以下典型问题:动态密码生成逻辑错误,导致405(用户名或密码不正确)状态码;手机号码格式校验不严谨...二、iOS语音验证码接口核心原理拆解2.1接口通信机制ios语音验证码接口API示例代码的核心通信逻辑基于HTTP协议,支持POST/GET两种请求方式,字符编码需统一为UTF-8。...;异步处理:网络请求需在子线程执行,结果回调到主线程更新UI;状态码处理:重点关注2(成功)、405(账号密码错误)、406(手机号格式错误)等高频状态码。...总结ios语音验证码接口API示例代码的集成核心是参数拼接、动态密码生成和状态码解析,需严格遵循UTF-8编码和签名规则;Swift开发中需重点处理MD5加密、网络权限配置和参数URL编码,避免高频接口调用错误

    13110

    C 手机验证码短信接口调用核心:实现网络连接与数据发送

    作为前端、后端或全栈开发者,调用c手机验证码短信接口是用户登录验证、账号安全校验等场景的高频需求,但实际开发中,常因网络连接方式选择不当、数据发送格式不规范,导致接口返回400(非法IP)、405(鉴权失败...)、mobile、content等核心参数;网络连接建立:客户端与接口服务商服务器建立TCP连接,需适配协议(HTTP/HTTPS)、请求方法(GET/POST);数据发送:按服务商规范拼接参数并编码,...3.1数据发送的核心规范(技巧总结)参数完整性:account/password/mobile为必填项,缺失任一参数会返回401/402/403错误;手机号格式:必须为11位纯数字,不可包含空格、-等特殊字符...UTF-8编码,避免中文乱码导致的模板匹配失败(4072错误)。...3.2常见数据发送错误排查(问题驱动)错误码常见原因排查方案405APIID/APIKEY错误核对从注册地址获取的account/password,确认未输错4072内容与模板不匹配检查content是否与审核通过的模板一致

    11610
    领券