向網址中添加參數時,您正在執行HTTP GET。如果您通過HTTP執行「標準」SOAP,則您的假設不正確。所有的SOAP服務都使用POST。他們可以在技術上使用GET,但通常您會看到POST。原因很簡單。 SOAP XML很複雜,並且包含URL中的內容將是一件非常痛苦的事情。
假設你有一個簡單的一塊XML一樣的:
<Customer>
<Name>John</Name>
</Customer>
在獲取URL將是可怕的東西。
現在服務器如何知道要執行哪個操作。那麼它看起來是在做出的請求。該操作未在URL中指定。
例如我有一個服務,它有兩個操作ListAccountsForStatus和ListTelephonicContactsByDate,它們都在http://my-server:9100/AccountService/V1的URL上運行。然而,要求會有所不同:
POST http://my-server:9100/AccountService/V1
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
SOAPAction: "http://www.insol.irix.com.au/ECollNXDB_V1/EcollUtilsServices/ListTelephonicContactsByDate"
Content-Length: 1337
Host: my-server:9100
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
<soapenv:Envelope>
<soapenv:Header/>
<soapenv:Body>
<ecol:ListTelephonicContactsByDate>
<ecol:ListTelephonicContactsByDateReq>
<ecol:Date>2016-08-04</ecol:Date>
</ecol:ListTelephonicContactsByDateReq>
</ecol:ListTelephonicContactsByDate>
</soapenv:Body>
</soapenv:Envelope>
,第二個:
POSThttp://my-server:9100/AccountService/V1 HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
SOAPAction: "http://www.insol.irix.com.au/ECollNXDB_V1/EcollUtilsServices/GetAccountStatusInfo"
Content-Length: 1329
Host: my-server:9100
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ecol="http://www.insol.irix.com.au/ECollNXDB_V1" xmlns:irix="http://www.insol.irix.com.au/IRIX_Headers_V1" xmlns:irix1="http://schemas.datacontract.org/2004/07/IRIXContract.MsgHeaderBase">
<soapenv:Header/>
<soapenv:Body>
<ecol:GetAccountStatusInfo>
<ecol:GetAccountStatusInfoReq>
<ecol:accountNumber>376062766403006</ecol:accountNumber>
</ecol:GetAccountStatusInfoReq>
</ecol:GetAccountStatusInfo>
</soapenv:Body>
</soapenv:Envelope>
請注意,該操作在SOAPAction頭指定。所以簡而言之,您可以使用SOAP Web服務。
- 點代碼生成庫(在你的情況看WCF的藍色,或如何從WSDL爲C#代碼)的 WSDL和生成所需的類。
- 使用生成的類與服務進行交互使用URL而不是WSDL URL。
您不想手動編寫XML請求並讀取響應。
歡迎來到stackoverflow.com。你能澄清你的問題嗎?你問如何從wsdl文件創建你自己的WebService? https://stackoverflow.com/questions/1394930/how-to-generate-web-service-out-of-wsdl – wp78de