Lors de l'ajout de paramètres à une URL, vous effectuez un HTTP GET. Si vous faites du SOAP "standard" sur HTTP, votre hypothèse est incorrecte. Tous les services SOAP utilisent POST. Ils peuvent techniquement utiliser GET mais généralement vous voyez POST. La raison est simple. SOAP XML est complexe et inclure dans l'URL va être une vraie douleur.
En supposant que vous avez un simple morceau de XML comme:
<Customer>
<Name>John</Name>
</Customer>
L'URL dans un get va être quelque chose horrible.
Maintenant comment un serveur sait-il quelle opération exécuter. Eh bien, il regarde la demande faite. L'opération n'est pas spécifiée dans l'URL.
Par exemple, j'ai un service qui a deux opérations ListAccountsForStatus et ListTelephonicContactsByDate qui s'exécutent toutes deux à l'adresse URL http://my-server:9100/AccountService/V1. Toutefois, les demandes semblent différents:
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>
Et le second:
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>
Notez que l'opération est spécifié dans l'en-tête SOAPAction. Bref, pour que vous puissiez utiliser un service web SOAP.
- point votre bibliothèque de génération de code (dans votre look de cas pour WCF bleu, ou comment générer le code de WSDL pour C#) au WSDL et générer des classes requises.
- Utilisez les classes générées pour interagir avec le service en utilisant uniquement l'URL et non l'URL WSDL.
Vous ne voulez pas coder manuellement les requêtes XML et lire les réponses.
Bienvenue sur stackoverflow.com. Pouvez-vous clarifier votre question s'il vous plaît? Demandez-vous comment créer votre propre WebService à partir d'un fichier wsdl? https://stackoverflow.com/questions/1394930/how-to-generate-web-service-out-of-wsdl – wp78de