C# 本地主机上的HttpWebRequest/Response(WebException:操作超时)

C# 本地主机上的HttpWebRequest/Response(WebException:操作超时),c#,asp.net-mvc,httpwebrequest,httpwebresponse,C#,Asp.net Mvc,Httpwebrequest,Httpwebresponse,我需要检查一些HTTP头,因此我使用C#的HttpWebRequest和HttpWebResponse类 我正在使用Visual Studio 2012进行开发,希望在我的本地主机上测试请求和响应,以便查看我正在处理的头类型(我在Chrome中使用devtools,以便查看,但我希望确保我的代码返回正确的值)。当我简单地输入http://localhost:[端口]/它无法连接 我可以看到它反复向服务器发出请求,最终我得到了异常WebException:操作超时了。如果我添加了request.K

我需要检查一些HTTP头,因此我使用C#的
HttpWebRequest
HttpWebResponse

我正在使用Visual Studio 2012进行开发,希望在我的本地主机上测试请求和响应,以便查看我正在处理的头类型(我在Chrome中使用devtools,以便查看,但我希望确保我的代码返回正确的值)。当我简单地输入
http://localhost:[端口]/
它无法连接

我可以看到它反复向服务器发出请求,最终我得到了异常
WebException:操作超时了
。如果我添加了
request.KeepAlive=false'
,那么我会得到异常
WebException:无法连接到远程服务器

所以我想知道:

  • 我的代码有问题吗?(见下文)
  • 如何在本地主机上测试
    HttpWebRequest
    HttpWebResponse
  • 我尝试过用IP地址代替“localhost”,但没有成功(例如
    http://127.0.0.1:[端口]/

    代码:

    你试过了吗?将向您显示所有HTTP请求、所有标题、响应状态,以及不同的数据视图,如原始、十六进制、图像等,时间轴视图、HTTPS连接,几乎所有内容


    还有Firefox扩展,如。但我强烈建议您试用Fiddler。

    您不会在Chrome开发工具中看到任何信息,因为请求是由应用程序而不是浏览器发出的。@Marthijn这很有意义。是否有某种工具或插件可以截取应用程序的标题信息?我希望我可以通过使用
    Debug.Write
    输出响应,并查看VS2012的输出窗口中发送的内容。只要在应用程序中设置断点,就可以看到这个问题的屏幕截图:我没有,但我经常听到这个名称。我得去看看。不过提琴手似乎有点过火了。我真的很想知道代码是否会成功连接到服务器,如果连接,我是否能够读取标题信息并相应地执行逻辑…Fiddler能否告诉我为什么我的请求一直超时?
       public class AuthorizationFilterAttribute : ActionFilterAttribute
       {
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            base.OnActionExecuting(filterContext);
    
            string url = "http://127.0.0.1:7792/";
            string responseString;
    
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            //request.KeepAlive = false;
            //request.AllowAutoRedirect = false;
    
            System.Diagnostics.Debug.Write(request);
    
    
            try
            {
                using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                {
                    using (StreamReader reader = new StreamReader(response.GetResponseStream()))
                    {
                        responseString = reader.ReadToEnd();
                        System.Diagnostics.Debug.Write(responseString);
                    }
                }
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.Write(e.Message);
                System.Diagnostics.Debug.Write(e.Source);
            }
        }
    }