Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Cabecera Accept-Encoding para SoapClient

Estas en el tema de Cabecera Accept-Encoding para SoapClient en el foro de PHP en Foros del Web. Hola, No hay manera de incluir una cabecera 'Accept-Encoding: gzip, deflate' a una petición SoapClient con SoapHeader y __setSoapHeaders. ¿Alguien me puede orientar? Código PHP: ...
  #1 (permalink)  
Antiguo 15/12/2016, 04:59
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 19 años, 8 meses
Puntos: 12
Cabecera Accept-Encoding para SoapClient

Hola,
No hay manera de incluir una cabecera 'Accept-Encoding: gzip, deflate' a una petición SoapClient con SoapHeader y __setSoapHeaders. ¿Alguien me puede orientar?
Código PHP:
$sc = new SoapClient($url1, array("trace" => true"exceptions" => false));
$sh = new SoapHeader(/*xxxxx*/);
$sc->__setSoapHeaders($sh);
$rs $sc->__doRequest($xml$url2"http://www.blablabla"'1.2'); 
Gracias de antemano.
__________________
Los ignorantes se empeñan en enseñar. Los sabios en aprender.
SourceForge
  #2 (permalink)  
Antiguo 15/12/2016, 09:40
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 19 años, 8 meses
Puntos: 12
Respuesta: Cabecera Accept-Encoding para SoapClient

Me respondo yo mismo ya que encontré la solución. Me estaba equivocando; el server soap me devolvía un aviso de que necesitaba añadir a la cabecera el parámetro Accept-Encoding. Me cegué con que debía incluirlo como SoapHeader.
La solución es más simple: hay que añadirlo a las opciones de constructor de SoapClient. Así:
Código PHP:
$client = new SoapClient("some.wsdl", array('compression' => SOAP_COMPRESSION_ACCEPT SOAP_COMPRESSION_GZIP)); 
Perdonad las molestias y aquí lo dejo por si alguien se encuentra con el problema.
__________________
Los ignorantes se empeñan en enseñar. Los sabios en aprender.
SourceForge

Etiquetas: cabecera
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:14.