Los diferentes motores de servicios web enrutan las solicitudes entrantes a implementaciones de servicios web particulares de manera diferente.
Usted dijo "servicios web", pero no especificó el uso de SOAP. Voy a asumir SOAP.
El SOAP 1.1 specification dice ...
El campo de encabezado de solicitud HTTP SOAPAction puede usarse para indicar la intención de la solicitud HTTP SOAP. El valor es un URI que identifica la intención. SOAP no impone restricciones sobre el formato o la especificidad del URI o que se puede resolver. Un cliente HTTP DEBE usar este campo de encabezado al emitir una solicitud HTTP SOAP.
mayoría de los motores de servicios web cumplen con la especificación, y por lo tanto utilizan la cabecera SOAPAction:
. Obviamente, esto solo funciona con las transmisiones SOAP-over-HTTP
.
Cuando no se utiliza HTTP (por ejemplo, TCP u otro), el motor de servicios web necesita recurrir a algo. Muchos usan la carga útil del mensaje, específicamente el nombre del elemento de nivel superior en el fragmento XML dentro del soap:envelope
. Por ejemplo, el motor podría mirar este mensaje entrante:
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<soap:Body>
<m:GetAccountStatus xmlns:m="Some-URI">
<acctnum>178263</acctnum>
</m:GetAccountStatus>
</soap:Body>
</soap:Envelope>
... GetAccountStatus
encontrar el elemento, y luego enrutar la solicitud en base a eso.
Recibo un error al intentar recuperar la respuesta con lo que escribió para este 'using (HttpWebResponse response = (HttpWebResponse) request.GetResponse())', en esa línea.¿Hay alguna otra forma de obtener la respuesta? Dice no saber, 'GetResponse()'. –