【问题标题】:See SOAP format into web services with fiddler使用 fiddler 将 SOAP 格式转换为 Web 服务
【发布时间】:2014-11-17 19:39:51
【问题描述】:

我创建了一个 Web 服务和一个 ConsoleApplication 来使用它。我正在使用提琴手来查看流量,我希望请求和响应是 SOAP,但这并没有发生,只有请求是 SOAP,而不是响应。
如何强制使用肥皂响应我的服务?

这是获得的原始 http 标头:
HTTP/1.1 200 OK
缓存控制:私有,max-age=0
内容类型:文本/xml;字符集=utf-8
内容编码:gzip
变化:接受编码
服务器:Microsoft-IIS/7.5
X-AspNet-版本:4.0.30319
X-Powered-By:ASP.NET
日期:2014 年 11 月 17 日星期一 20:19:22 GMT
内容长度:311

响应是二进制的。
我的 web-service 是在 ASP.NET Empty Web Application 项目中添加一个 Web Services 项创建的,我没有修改,后来我在 IIS 中发布。
我的消费者也很简单。我只是添加服务引用并创建一个实例。

var binding = new BasicHttpBinding();
var endpointAddress = new EndpointAddress("http://172.20.48.59/web-services/MyWebService.asmx");
var serviceRefWithoutConfig = new ServiceReference1.MyWebServiceSoapClient(binding, endpointAddress);
Console.WriteLine(serviceRefWithoutConfig.HelloWorld());

【问题讨论】:

  • 响应格式是什么?
  • 但我的消费者应用程序显示正确答案
  • Fiddler 没有隐藏 SOAP 吗?例如,WireShark 会显示什么作为响应?
  • 服务是你写的吗?然后向我们展示 service 中的(基本)代码。 service 决定 service 如何响应。
  • 还有,你怎么知道它没有返回 SOAP?您是否希望您的 Console.WriteLine 输出 XML?这不是它的工作原理。

标签: c# .net web-services soap fiddler


【解决方案1】:

有问题的 HTTP 响应使用 GZIP 压缩。

单击 Fiddler 中显示 Response is encoded and may require decoding before inspection. Click here to transform. 的黄色大条后会发生什么?

【讨论】:

  • 如何在代码中处理这个问题?如何让客户端解压?
  • 您的问题中没有足够的信息来回答它。每个平台和语言的行为都不同,但几乎所有 HTTP 堆栈都有一个标志,允许它们解压缩 HTTP 压缩响应。与其在 cmets 中提问,不如在顶层搜索相关问题,万一找不到答案,请提出新问题。
【解决方案2】:

如果您正在创建新的东西,我强烈建议您考虑使用 WebAPI 来做类似的事情。

如果将来需要,控制方法的输出会更容易,并且生成的服务将更容易在移动平台上使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-21
    • 2013-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-20
    相关资源
    最近更新 更多