Fiddler4在Windows Server 2012中激起RestSharp请求为空

问题描述:

所以我在纯粹的REST(无Neo4JClient)测试Neo4j的,我有这样的代码:Fiddler4在Windows Server 2012中激起RestSharp请求为空

 var client = new RestClient("http://url"); 

     string requestText = "{ \"query\" : \"start x = node(1) match path = (x--IsFriendOf) return path, IsFriendOf.name\", \"params\" : { }}"; 

     var request = new RestRequest(); 

     request.Method = Method.POST; 
     request.RequestFormat = DataFormat.Json; 
     request.Resource = "/foo/bar"; 
     request.AddHeader("Content-Length", requestText.Length.ToString()); 
     request.AddHeader("Host", "ip:port"); 
     request.AddHeader("Accept", "application/json"); 
     request.AddHeader("Content-Type", "application/json"); 

     request.AddHeader("Authorization", "Basic encoded64credentials"); 


     request.AddBody(requestText); 



     IRestResponse response = client.Execute(request); 

如果我做小提琴手本身的原始请求,我得到了想要的结果,

但是,如果我在.NET 4.5做一个控制台应用程序,我看到:

enter image description here

我创建了一个规则我的防火墙允许传入/传出控制台可执行文件的请求,并且我禁用了IE保护模式,但仍然没有运气。

有没有人有关于这个问题的一些想法?

+1

你从.NET获得什么?您已经说明了您在Fiddler中看到的内容,但不是代码实际返回的内容。一个错误,可能是一个错误代码?感谢好友 –

+0

!我在meta上看到了你的消息,我会在那里回复,在这里我可以告诉你,代码没有任何作用,就像做了很多次尝试,并在阈值之后,你得到空字符串 –

+0

只是添加,实际上你可以看到问题就在图片中,如果我正在向特定的URL发出HTTP请求,Fiddler会拦截请求并向我显示它正在传输隧道,因为我从未看到原始Web请求。 –

这里有很多错误。

首先要理解的是,您根本没有看到请求 - 您在此屏幕截图中显示的请求是IE下载兼容性视图列表信息,而不是您自己创建的任何请求。

您应该先阅读http://blogs.msdn.com/b/fiddler/archive/2011/09/14/fiddler-and-windows-8-metro-style-applications-https-and-private-network-capabilities.aspx以了解Windows 8/Windows Server 2012如何更改以及如何在本地环回代理中捕获其流量。

+0

感谢@EricLaw,我搜索了几十年寻找可以描述我遇到的问题的博客,我知道它必须是关于最新版本的东西,因为我以前从未遇到过这个问题,非常感谢。注意,Kinda很酷,可以从Fiddler的创造者那里得到答案。 –

+0

FWIW这回答我的问题,因为我不明白发生了什么,但我仍然对AppContainer实用程序有问题,请问您能帮我一下吗?这里是问题(具体为fiddler4问题):http://*.com/questions/13740065/failed-to-get-appcontainer-info-unable-to-enumerate-appcontainer-is-the-window –

我不敢相信我在写什么,但显然错误是由提琴手本身产生的,我会发现小提琴手打断我的电话的内在机制是什么。

因此,如果您向不在端口80上的REST API发出http请求,并且您使用的是WireShark或Fiddler,则请求永远不会到达端点。

我不知道如何解决它,但我知道如何避免它,也就是关闭服务器上的所有流量监视器。在我的例子中,我打开了Wireshark和Fiddler4来帮助我调试http请求的内容,但是当然我不知道发生了什么,因为我正在用引发错误的工具进行调试。

我在Windows Server 2012中使用Fiddler4,使用VS2012和.Net Framework 4.5,如果这对任何有此提示的人都有用。