Tag: fiddler

Fiddler测试API Post传递类

我有一个名为“TestController”的非常简单的C#APIController,其API方法如下: [HttpPost] public string HelloWorld([FromBody] Testing t) { return t.Name + ” ” + t.LastName; } 联系人只是一个类似于以下的类: public class Testing { [Required] public string Name; [Required] public string LastName; } 我的APIRouter看起来像这样: config.Routes.MapHttpRoute( name: “TestApi”, routeTemplate: “api/{controller}/{action}/{id}”, defaults: new { id = RouteParameter.Optional } ); 问题1 : 如何从C#客户端测试? 对于#2,我尝试了以下代码: private async Task TestAPI() { var pairs […]

通过Fiddler发送POST请求到asp.net mvc动作

我有一个ASP.NET MVC网站。 我的一个路由是一个带有5个参数的URL 。 为了便于说明,这些参数被命名为parameter1 , parameter2 , parameter3 , parameter4和parameter5 。 目前,我正在一些C#代码中构建一个URL,它将通过WebClient POST到mvc动作。 该代码如下所示: WebClient myWebClient = new WebClient(); myWebClient.UploadStringCompleted += myWebClient_UploadStringCompleted; string url = “http://www.example.com/customer/” + parameter1 + “/orders/” + parameter2 + “/” + parameter3 + “/” + parameter4 + “/” + parameter5; myWebClient.UploadStringAsync(new Uri(url, UriKind.Absolute)); 我确信UploadString方法可以执行POST 。 我需要做一个POST ,因为我的参数值可能很长。 事实上,我估计偶尔,总url长度可能是20000个字符。 无论如何,当我尝试发布数据时,我收到400 error […]

有没有办法配置Fiddler拦截来自Windows服务的HTTP调用?

我们正在更换使用VS2005构建的旧(5年以上)Windows服务应用程序,该应用程序进行HTTP GET调用。 有几件事情使这很困难(比如网络服务器在客户的网络上,我们无法直接连接到它),不幸的是,我们不想取消正在运行的系统来用WinForm取代它Fiddler可以监控的版本。 新代码似乎正在正确地执行所有操作,但是,唉,它无法进行身份validation。 有没有办法配置Fiddler(2.2.9.1)来拦截来自Windows服务的HTTP调用?

RestSharp忽略.NET Core上的系统代理(例如Fiddler)

我想用Fiddler检查http流量,但没有捕获任何http流量,我的测试代码: private static void ByRestSharp() { var restClient = new RestClient(“https://jsonplaceholder.typicode.com”); var request = new RestRequest(“posts”, Method.GET); var response = restClient.Get<List>(request); Console.WriteLine(“{0} posts return by RestSharp.”, response.Data.Count); } 但是在我改为使用HttpClient后,Fiddler可以捕获http流量,示例代码: private static void ByHttpClient() { var httpClient = new HttpClient(); using (var req = new HttpRequestMessage(HttpMethod.Get, “https://jsonplaceholder.typicode.com/posts”)) using (var resp = httpClient.SendAsync(req).Result) { var json = […]

除非fiddler正在运行,否则HttpWebRequest不起作用

这可能是我遇到过的最棘手的问题。 我有一段代码将POST提交到url。 当fiddler没有运行时,代码不起作用也不会抛出任何exception。但是,当fiddler运行时,代码会成功发布数据。 我可以访问post页面,所以我知道数据是否已被POSTED。 这可能是非常无意义的,但这是我遇到的情况,我很困惑。 byte[] postBytes = new ASCIIEncoding().GetBytes(postData); HttpWebRequest req = (HttpWebRequest)WebRequest.Create(“http://myURL); req.UserAgent = “Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.224 Safari/534.10”; req.Accept = “application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5”; req.Headers.Add(“Accept-Charset”, “ISO-8859-1,utf-8;q=0.7,*;q=0.3”); req.Headers.Add(“Accept-Language”, “en-US,en;q=0.8”); req.Method = “POST”; req.ContentType = “application/x-www-form-urlencoded”; req.ContentLength = postBytes.Length; req.CookieContainer = cc; Stream s = req.GetRequestStream(); s.Write(postBytes, 0, postBytes.Length); […]

如何使用具有特定HTTP引用和查询字符串的WatiN来模拟http请求?

当我使用WatiN转到特定网页时,如何使用查询字符串伪造HTTP引用者 (即请求来自谷歌搜索,查询字符串q = search_term)? 因此,我可以validation响应标头是否具有针对特定引荐来源url的301重定向。 我可能需要使用FiddlerCore来扮演中间人来设置自定义引荐来源,但我还不确定如何做到这一点。 我在C#中使用ASP.NET。 谢谢! //WatiN Browser.GoTo(url);

在单个HTTPWebRequest中上载多个文件

我创建了一个接受两件事的服务: 1)称为“类型”的身体参数。 2)要上传的csv文件。 我在服务器端读这两样东西是这样的: //Read body params string type = HttpContext.Current.Request.Form[“type”]; //read uploaded csv file Stream csvStream = HttpContext.Current.Request.Files[0].InputStream; 我怎么能测试这个,我用Fiddler来测试这个,但我一次只能发送一件事(无论是类型还是文件),因为两者都是不同的内容类型,我如何使用内容类型multipart / form-data和application / x-www-form-urlencoded同时进行。 即使我使用此代码 public static void PostDataCSV() { //open the sample csv file byte[] fileToSend = File.ReadAllBytes(@”C:\SampleData.csv”); string url = “http://localhost/upload.xml”; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = “POST”; request.ContentType = “multipart/form-data”; request.ContentLength = […]

为什么Http请求Fiddler的速度非常快

我在c#中编写了一个用于抓取网站的multithreading程序,但当我在后台启动Fiddler时,请求的速度提高了12倍,这对我来说真的很奇怪,当我关闭Fiddler时,下载速度会降低。 怎么可能请帮助,(我的连接到ineternet和Fiddler也没有代理设置)如果我可以在我的应用程序中注入fiddler的性能,那将是非常好的,任何解决方案? 幕后有什么魔力吗? 🙂 谢谢

WebApi HttpClient不发送客户端证书

我正在尝试使用客户端证书使用ssl和客户端身份validation来保护我的RESTful WebApi服务。 去测试; 我已生成一个自签名证书并放置在本地计算机,受信任的根证书颁发机构文件夹中,并且我已生成“服务器”和“客户端”证书。 服务器的标准https无问题。 但是我在服务器中有一些代码来validation证书,当我使用提供我的客户端证书的测试客户端进行连接并且测试客户端返回403 Forbidden状态时,这永远不会被调用。 这实现了服务器在我的证书到达我的validation码之前失败了。 但是,如果我启动提琴手,它知道需要客户端证书,并要求我提供一个到我的文档\ Fiddler2。 我给了它我在我的测试客户端使用的相同客户端证书,我的服务器现在工作,并收到我期望的客户端证书! 这意味着WebApi客户端没有正确发送证书,我的客户端代码与我发现的其他示例几乎相同。 static async Task RunAsync() { try { var handler = new WebRequestHandler(); handler.ClientCertificateOptions = ClientCertificateOption.Manual; handler.ClientCertificates.Add(GetClientCert()); handler.ServerCertificateValidationCallback += Validate; handler.UseProxy = false; using (var client = new HttpClient(handler)) { client.BaseAddress = new Uri(“https://hostname:10001/”); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(“application/xml”)); var response = await client.GetAsync(“api/system/”); var str […]

使用fiddler和Windows身份validation

我正在为我们的应用程序测试一些代理设置,但我需要测试需要Windows身份validation(或网络凭据)的代理。 为了进行测试,我将代理的凭据分配给网络凭据 System.Net.WebProxy proxy = new System.Net.WebProxy(“127.0.0.1”, 8888); proxy.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials; //proxy.Credentials = new System.Net.NetworkCredential(“1”, “1”); System.Net.WebRequest.DefaultWebProxy = proxy; 目前,我使用Fiddler并启用了“ Require Proxy Authentication规则。 如何配置Fiddler以便我可以使用Windows凭据而不是默认的“1”/“1”凭据?