【问题标题】:ServiceStack JsonServiceClient, force traffic on the wire for localhost?ServiceStack JsonServiceClient,强制本地主机的网络流量?
【发布时间】:2012-10-10 13:51:42
【问题描述】:

此 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 中看不到任何流量,我该如何强制?

通过浏览器到 localhost 端点的 HTTP 流量显示正确。

【问题讨论】:

  • 如果您将 localhost 替换为您的 ip 地址 (lan) 会发生什么?或者在你的 hosts 文件中说一个解析为 127.0.0.1 的主机名?
  • 127.0.0.1 给出相同的结果。一个不同的主机名,但指向主机文件中的 127.0.0.1,可以根据需要为我提供 Fiddler 中的流量。谢谢!

标签: c# json rest fiddler servicestack


【解决方案1】:

编辑您的主机文件,位于

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

并添加以下条目

127.0.0.1 mymachine.com

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

【讨论】:

  • 谢谢,这是我采用的解决方案。这是有效的,因为 .NET 框架不通过代理发送任何本地请求,而只是为 localhost 定义另一个名称,有效。 Fiddler 实际上记录了这一点 - 在这里:fiddler2.com/fiddler/help/hookup.asp#Q-LocalTraffic
【解决方案2】:

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

这与 ServiceStack 无关,请求实际上是通过 http 协议进行的。问题是循环回本地主机并没有通过提琴手发送流量。其实Fiddler2 FAQ page上都有说明。

【讨论】:

    【解决方案3】:

    另一个技巧是用你的机器名替换你的“localhost”uri,这应该可以用 Fiddler 开箱即用。

    http://machinename:port/test

    【讨论】:

      猜你喜欢
      • 2019-02-05
      • 2021-12-03
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-10
      • 2021-10-20
      相关资源
      最近更新 更多