C# 本地主机上的HttpWebRequest/Response(WebException:操作超时)
我需要检查一些HTTP头,因此我使用C#的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
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);
}
}
}