C# ServiceStack JsonServiceClient,是否强制本地主机的在线流量?
此ServiceStack客户端代码可以工作: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的交通时,我什么也看不到。我想观察流量,以便更好地了
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实际上记录了这一点-此处: