首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ASP.NET MVC响应HTTP HEAD请求

使用ASP.NET MVC响应HTTP HEAD请求
EN

Stack Overflow用户
提问于 2010-07-06 02:29:59
回答 2查看 14.2K关注 0票数 40

当机器人使用HEAD访问我的ASP.NET MVC站点时,我希望正确地支持HTTP HEAD请求。我注意到,对该站点的所有HTTP HEAD请求都返回404,特别是来自http://downforeveryoneorjustme.com的请求。这真的很烦人。希望他们能像其他优秀的机器人一样换成其他的机器人。

如果我只是将[AcceptVerbs(HttpVerbs.Get)]改为[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Head)],MVC会知道删除请求的正文吗?

您采取了哪些措施来支持HTTP HEAD请求?(代码样例将非常棒!)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-08 01:06:18

我在一个ASP.Net MVC2项目中创建了一个简单的操作方法:

代码语言:javascript
复制
public class HomeController : Controller
{
    public ActionResult TestMe()
    {
        return View();
    }
}

然后我启动了Fiddler并构建了一个HTTP GET请求来访问这个URL:

http://localhost.:51149/Home/TestMe

返回了预期的整页内容。

然后,我将请求更改为使用HTTP HEAD,而不是HTTP GET。我在原始输出中只收到了预期的head信息,而没有body信息。

代码语言:javascript
复制
HTTP/1.1 200 OK
Server: ASP.NET Development Server/10.0.0.0
Date: Wed, 07 Jul 2010 16:58:55 GMT
X-AspNet-Version: 4.0.30319
X-AspNetMvc-Version: 2.0
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 1120
Connection: Close

我的猜测是,您在操作方法上包含了一个约束,以便它只响应HTTP GET谓词。如果您这样做,它将同时适用于GETHEAD,或者如果约束没有提供值,则可以完全忽略它。

代码语言:javascript
复制
public class HomeController : Controller
{
    [AcceptVerbs(new[] {"GET", "HEAD"})]
    public ActionResult TestMe()
    {
        return View();
    }
}
票数 56
EN

Stack Overflow用户

发布于 2013-02-23 16:11:35

您只需执行以下操作即可达到此效果

代码语言:javascript
复制
[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Head)]
public ActionResult TestMe() =>View();
票数 29
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3181500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档