【问题标题】:See SOAP/XML returned by WCF请参阅 WCF 返回的 SOAP/XML
【发布时间】:2016-12-08 14:19:08
【问题描述】:

假设我有这样部署的标准 Service.svc:

public class Service1 : IService1
{
    public string GetData(int value)
    {
        return string.Format("You entered: {0}", value);
    }

    public CompositeType GetDataUsingDataContract(CompositeType composite)
    {
        if (composite == null)
        {
            throw new ArgumentNullException("composite");
        }
        if (composite.BoolValue)
        {
            composite.StringValue += "Suffix";
        }
        return composite;
    }
}

还有这样的客户:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        ServiceReference1.Service1Client s1 = new ServiceReference1.Service1Client();
         string str = s1.GetData(1);

    }
}

Web 服务将以下文本返回到 str 变量(如预期的那样):“您输入:1”。如何查看生成的 SOAP/XML?

我意识到我可以使用 Fiddler,但是我想在 .NET 中看到它,即返回到 str 变量..

【问题讨论】:

  • 您可以使用 HTTP 客户端而不是我想象的服务代理来通过函数调用和参数来访问端点......您想用这个来完成什么?

标签: c# xml wcf soap


【解决方案1】:

WCF 提供的主要好处之一是将您从任何序列化/传输问题中抽象出来。由于您的服务合同返回 CompositeType,您会得到一个从客户端的底层 XML 消息自动重建的实例。

但是,如果您想要获取原始 XML,您仍然可以通过执行直接调用来实现,具体取决于您的 WCF 服务器支持的传输方式。如果是 basicHttpBinding/wsHttpBinding,您可以执行 HTTP 请求并读取纯 XML 响应。当然,身份验证和安全等所有繁琐的工作都由您来完成。

如果您只是出于调试/学习目的需要它,您可以enable message logging 或使用标准的WcfTestClient.exe 实用程序。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-13
  • 2011-07-26
  • 1970-01-01
  • 1970-01-01
  • 2011-11-20
  • 2019-04-09
相关资源
最近更新 更多