Dos Fácil PHP setHeaders de SOAP Preguntas
-
26-09-2019 - |
Pregunta
Este es el código que estoy usando para generar las cabeceras de petición:
$headers = array(
new SOAPHEADER($this->_ns,'username',$this->_username,false, $this->_actor),
new SOAPHEADER($this->_ns,'password',$this->_password,false, $this->_actor));
$this->_client->__setSOAPHeaders($headers);
Esto genera:
<SOAP-ENV:Header>
<ns2:username SOAP-ENV:actor="http://schemas.xmlsoap.org/soap/actor/next">test</ns2:username>
<ns2:password SOAP-ENV:actor="http://schemas.xmlsoap.org/soap/actor/next">test</ns2:password>
</SOAP-ENV:Header>
Eso es todo lo fino y elegante.
Aquí están mis dos preguntas:
La documentación del API requiere que sea nombre de usuario ns1: nombre de usuario y la contraseña será ns2: contraseña . Los míos son tanto ns2. En primer lugar, ¿cuál es el significado de la NS1 | 2? ¿Cómo puedo solucionar este problema?
La segunda pregunta es ¿hay alguna manera de generar el mismo resultado solamente llamando SoapHeader () una vez?
Solución
- No es fácil decir si el espacio de nombres hace una diferencia sin ver la declaración y conociendo el servicio, pero por lo general el servicio de recepción se ve sólo de las variables en ese espacio de nombres particular. A medida que agrega
$this->_ns
a ambos, por supuesto que va a ser el mismo. Usted tendrá que proporcionar el espacio de nombres adecuado a sí mismo (prefijo no importa, URI). - ¿Por qué quieres a sólo 1 llamada?
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow