2017-06-27 39 views
0

我沒有特別需要實現的東西,我只是想了解一些概念。返回JSON的.NET soap web服務 - 它如何工作?

據我所知,.NET web方法(例如,在Web服務中)正在使用SOAP協議。這意味着接收到服務器的數據需要採用XML格式,並且從Web方法返回的數據也應該採用XML格式。

我知道我可以寫這樣的事:

[WebMethod] 
public static Object someMethod(Object josn) 
{ 
    Console.Write(json("someProperty")); 
    return new {name = "John"} 
} 

我知道,發回給客戶端的數據是JSON格式... 但是如果我們使用SOAP協議,應該不會吧返回XML? 我想了解幕後發生了什麼,或者我錯過了什麼,請求是否以xml格式發送,.NET框架知道如何提取發送的參數,如果是的話 - 我如何檢索完整的xml代表了提出的請求?

回答

0

你指的是SOAP信封。看看這裏:

Sample SOAP Envelope

一個一看就知道是在請求或響應中使用SOAP信封最簡單的方法是使用FiddlerPostman

編輯

這裏的WCF SOAP信封的使用JSON(不知道,如果你正在使用WCF或ASMX文件舊的.NET Web服務)的例子:

<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing"> 
    <s:Header></s:Header> 
    <s:Body>[{"DateOfBirth":"\/Date(286801200000+1300)\/","FirstName":"Foo","Id":1,"LastName":"Bar"},{"DateOfBirth":"\/Date(333720000000+1200)\/","FirstName":"Foo","Id":1,"LastName":"Bar"}]</s:Body> 
</s:Envelope> 
+0

所以,當web方法被調用,.NET框架知道如何解析這個信封並檢索在其中發送的參數? – itay312

+0

@ itay312是的,無論在SOAP信封中傳遞的參數是否會在代碼隱藏中都可用。 – Pavel