servicestack,C#,Json,Rest,Fiddler,servicestack" /> servicestack,C#,Json,Rest,Fiddler,servicestack" />

C# ServiceStack JsonServiceClient,是否强制本地主机的在线流量?

C# ServiceStack JsonServiceClient,是否强制本地主机的在线流量?,c#,json,rest,fiddler,servicestack,C#,Json,Rest,Fiddler,servicestack,此ServiceStack客户端代码可以工作: var client = new JsonServiceClient("http://localhost:32949/test"); var request = new MyRequest { ClassificationId = new ClassificationId (21300) }; var response = client.Post(request); 然而,当我观察Fiddler的交通时,我什么也看不到。我想观察流量,以便更好地了

此ServiceStack客户端代码可以工作:

var client = new JsonServiceClient("http://localhost:32949/test");
var request = new MyRequest { ClassificationId = new ClassificationId (21300) };
var response = client.Post(request);
然而,当我观察Fiddler的交通时,我什么也看不到。我想观察流量,以便更好地了解如何为我必须编写的其他客户端构建所需的JSON请求

为了使上述代码正常工作,我必须引用拥有服务的程序集,我怀疑ServiceStack正在进行一些巧妙的调用,以避免发送HTTP请求。是这样吗

为什么我在Fiddler中没有看到任何流量,我如何强制它


通过浏览器到本地主机终结点的HTTP流量显示正确。

编辑主机文件,位于

C:\Windows\System32\drivers\etc\hosts

并添加以下条目

127.0.0.1 mymachine.com


然后将您的客户指向
mymachine.com
而不是
localhost

我将在这里回答我自己的问题-commenter@wal向我指出了问题:


这与ServiceStack无关,请求实际上是通过http协议进行的。问题是循环回localhost时没有通过fiddler发送流量。另一个技巧是用您的机器名替换您的“localhost”uri,这应该在Fiddler中就可以实现


http://machinename:port/test

出于兴趣,如果用ip地址(lan)替换本地主机会发生什么?或者说主机名解析为主机文件中的127.0.0.1?127.0.0.1会给出相同的结果。一个不同的主机名,但在hosts文件中指向127.0.0.1,根据需要提供Fiddler中的流量。谢谢谢谢,这就是我的解决方案。这是因为.NET framework不通过代理发送任何本地请求,而只是为localhost定义另一个名称。Fiddler实际上记录了这一点-此处: