2016-12-08 50 views
1

回來見SOAP/XML說我有標準Service.svc部署這樣的:通過WCF

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變量..

+0

你可以用HTTP客戶端而不是服務代理來調用函數調用和參數,我會想象......你想用這個完成什麼? – Kritner

回答

1

的一個主要好處WCF所提供的任何序列化/運輸問題抽象你。由於您的服務合同返回CompositeType,您將從客戶端的基礎XML消息中自動重建該實例。

但是,如果您想獲得原始XML,您仍然可以通過根據WCF服務器支持的傳輸執行直接調用來實現此目的。如果它是basicHttpBinding/wsHttpBinding,則可以執行HTTP請求並讀取將爲純XML的響應。當然,所有骯髒的工作,如身份驗證和安全性在你身上。

如果您只是爲了調試/學習的目的而需要此功能,您可以使用enable message logging或使用標準WcfTestClient.exe實用程序。

+0

謝謝。你如何做:「執行HTTP請求並讀取將是純XML的響應」? – w0051977

+0

選中此項:http://stackoverflow.com/questions/4791794/client-to-send-soap-request-and-received-response – UserControl