我需要检查一些HTTP标头,因此我使用的是C#的HttpWebRequest
和HttpWebResponse
类。
我正在使用Visual Studio 2012进行开发,并希望在我的本地主机上测试请求和响应,这样我就可以看到我正在处理哪种类型的标题(我在Chrome中使用devtools,所以我可以在那里看到,但是我想确保我的代码返回正确的值)。当我简单地输入http://localhost:[Port]/
时,它就无法连接。
我可以看到它反复向服务器发出请求,最终我得到异常WebException: The Operation has timed out
。如果我添加request.KeepAlive = false'
,那么我会收到例外WebException: Unable to connect to the remote server
。
所以我想知道:
HttpWebRequest
和HttpWebResponse
?我尝试使用IP地址代替“localhost”,但这不起作用(ex http://127.0.0.1:[port]/
)
代码:
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);
}
}
}