¿Puede el cartero solicitar la interfaz del servicio web? La información del nivel de transporte no coincide con el URI del espacio de nombres del mensaje SOAP.

1. Antecedentes

¿Puede el cartero solicitar la interfaz de servicio web y debe instalarse el software de interfaz de usuario de jabón?
No, la esencia de la solicitud del servicio web es la solicitud HTTP, puede usar el cartero para solicitar el servicio web

2. Cómo usar POSTMAN para solicitar la interfaz del servicio web

No es difícil, para hacer:

  1. Para saber cuál es la URL solicitada
  2. para usar POST

Debido a que hay un cuerpo de solicitud, no debe usar GET. No he probado PUT y similares, pero este servicio web es tan antiguo. ¿Cómo podría pensar en usar PUT cuando nació en la era de GET/POST? Solo puedes usar POST

  1. El cuerpo de la solicitud debe tener parámetros.

Incluso si la interfaz solicitada real no tiene parámetros, siempre debe empaquetarse en un mensaje de jabón, es decir, los parámetros de la solicitud xml se incluyen en el cuerpo de la solicitud.

  1. Para establecer el tipo de contenido correcto

En el encabezado, simplemente establezca un encabezado que sea de tipo de contenido

3. Cómo establecer el tipo de contenido correcto

Dependiendo de la versión del servicio web, el tipo de contenido establecido es ligeramente diferente

Si la configuración es incorrecta, habrá un mensaje de error de soapenv: VersionMismatch y la información del nivel de transporte no coincide con el URI del espacio de nombres del mensaje SOAP.

Qué versión es la clave para ver la declaración del parámetro de solicitud:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
<soap:Envelope xmlns:soap="http:/ /www.w3.org/2003/05/soap-envelope”

SOAP 1.1: http://schemas.xmlsoap.org/soap/envelope/
SOAP 1.2: http://www.w3.org/2003/05/soap-envelope

1.1 Se debe usar el tipo de contenido text/xml, y también se puede agregar la codificación: text/xml; charset=utf-8
1.2 Usar: application/soap+xmlo también se puede agregar la codificación:application/soap+xml; charset=utf-8

Si se configura el tipo de contenido incorrecto, por ejemplo, text/xml se configura en 1.2, se informará un error, lo que indica claramente que la versión no coincide.

<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Body>
        <soapenv:Fault>
            <faultcode>soapenv:VersionMismatch</faultcode>
            <faultstring>Transport level information does not match with SOAP Message namespace URI</faultstring>
            <detail></detail>
        </soapenv:Fault>
    </soapenv:Body>
</soapenv:Envelope>

Supongo que te gusta

Origin blog.csdn.net/w8y56f/article/details/131342702
Recomendado
Clasificación