我在 VS2010 上编写了发送 httpwebrequest 的简单应用程序,并且没有任何配置的提琴手捕获了这个请求。但是之后,我安装了 VS2012 并运行 fiddler,当我发送请求时,我有异常“操作超时”并且请求没有被捕获。当我关闭提琴手时,所有请求都会发送。我删除了 VS2012 和 .net framework 4.5。在该请求被发送和提琴手捕获它们之后。
为什么安装 .net4.5 时提琴手不捕获流量?
问问题
1492 次
1 回答
1
您是否尝试过设置HttpWebRequest的Host属性?这可能是您的问题的原因。
我也安装了 .NET 4.5 并遇到了同样的情况。当提琴手正在运行并充当代理时,我得到了同样的错误。错误是:
System.Net.WebException:操作在 System.Net.HttpWebRequest.GetResponse() 处超时
这是一个重现问题的简单示例:
using System;
using System.IO;
using System.Net;
namespace WebRequestTest
{
class Program
{
static void Main(string[] args)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.microsoft.com");
request.Host = "www.microsoft.com";//If I comment this line, capturing with fiddler works OK.
request.Method = "GET";
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0";
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
using (Stream stream = response.GetResponseStream())
using (StreamReader sr = new StreamReader(stream))
{
string content = sr.ReadToEnd();
Console.WriteLine(content);
}
}
}
}
就我而言,我只需要评论该request.Host="www.microsoft.com"
行,一切正常。
我怀疑在使用 fiddler 以外的 HTTP 代理时会发生同样的行为,但我还没有测试过。
于 2013-02-17T10:12:56.127 回答