无法在Fiddler中看到WebClient发布请求

时间:2014-09-14 18:33:40

标签: asp.net .net webforms webclient fiddler

我有一个ASP.NET WebForms应用程序(发件人),它将WebClient发布请求发送到同一台开发机器上的另一个ASP.NET应用程序(接收方)。通过单击发件人应用程序中的按钮启动WebClient帖子。它是一个测试应用程序,表单只有按钮。我可以从Fiddler的按钮看到帖子,但我没有看到来自WebClient方法的帖子请求。的为什么吗

我知道WebClient帖子运行成功,因为断点在接收器应用程序中被点击,而Forms集合具有来自发件人应用程序的WebClient请求的输入字段的值。 (使用Windows 8.1)

更新这是电话:

using (var client = new WebClient())
{
    client.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
    var data = "FirstName=John";
    var result = client.UploadString("http://localhost/testform/default.aspx", "POST", data);
    Console.WriteLine(result);
}

2 个答案:

答案 0 :(得分:2)

.NET和IE(版本9之前)没有通过任何代理向localhost发送请求。有三种可能的解决方案:

  1. 使用机器名称或主机名:http://<machine name>/testform/default.aspx
  2. ipv4.fiddler添加到网址:http://localhost.fiddler/testform/default.aspx
  3. 向小提琴手添加自定义规则:
  4. static function OnBeforeRequest(oSession:Fiddler.Session){ 
        if (oSession.HostnameIs("MYAPP")) { 
            oSession.host = "<put your ip address and port here>"; 
        } 
    }
    

    然后您应该能够通过http://myapp/testform/default.aspx

    捕获流量

    参考Problem: Traffic sent to http://localhost or http://127.0.0.1 is not captured

答案 1 :(得分:0)

可能是多件事。这是一些可能性

  1. 你有Fiddler设置过滤只显示来自特定进程的东西(或其他类型的过滤器,但进程是最容易意外打开的过程)
  2. 你没有在Fiddler中启用HTTPS捕获,但是这个丢失的请求是HTTPS(默认情况下是关闭的)
  3. 您的WebClient已配置自定义代理,并未从IE
  4. 中提取默认设置