从HttpRequest获取状态代码

Luk*_*rak 3 asp.net sitecore request http-status-codes

是否可以从当前请求(HttpRequest)获取HTTP状态代码?我将一个页面重定向到另一个页面,代码为301.但是当我处于重定向页面时,页面的响应状态代码为200.在浏览器中,我可以看到正确的代码(301).

Mar*_*lak 8

将页面重定向到另一个页面时(无论您使用301302状态重定向的状态),都有2个请求:

  1. 响应状态为301(或302)的新位置的第一个请求
  2. 响应状态为200(假设一切正常)的第二个请求,包含重定向页面的内容.

当您Response.StatusCode重定向页面上检查时,它将是301,但在重定向页面上它永远不会是301(除非您在第一个之后进行另一次重定向).

要从当前请求的响应中获取HTTP状态代码,请使用:

HttpContext.Current.Response.Status // to get the string like '200 OK'
HttpContext.Current.Response.StatusCode // to get only the int value, e.g. 200
Run Code Online (Sandbox Code Playgroud)