7/8/13

[php] NuSOAP HTTP Error: socket read of headers timed out

Holas a todos. Este es para comentar un problema que he tenido al trabajar un servicio web montado en PHP con la clase NuSOAP. El problema surgió cuando intenté llamar al servicio web desde el otro servidor, pero se caía a los exactos 30 segundos de ejecución, mostrando el mensaje que titula este registro: HTTP Error: socket read of headers timed out

Sabía que el problema era el timeout, pero ¿el timeout de qué? En los servidores y páginas web hay timeouts por todos lados: el de la Conexión a internet o la red, el del Servidor (hardware), el del Servidor Web en sí (Apache, mi caso), el de PHP (mi caso)... Pero nunca se me habría ocurrido que las Aplicaciones o frameworks también pudieran tener :o

Por eso, tras buscar por la red la solución a mi problema, la respuesta vino precisamente de alguien que señaló sencillamente que había que modificar el timeout de la clase NuSOAP. Y dicho y hecho, eso solucionó el problema.

Si están usando en su servidor y/o cliente la clase NuSOAP, y desean alterar el timeout, deberán abrir el archivo nusoap.php y editar en donde se declare la variable $response_timeout, la cual siempre estará definida con un valor de 30 (segundos). Yo intenté modificarla sólo en la definición de las propiedades de la clase, pero no bastó, por lo que terminé modificándola en todas las partes donde fuera llamada o utilizada (habrán sido unas 10 ó más veces en el archivo, dentro y fuera de métodos).

Espero que este tip les sirva, saludos a todos y gracias por leer!

Fuente de la respuesta:
- Foros del Web: Problema al intentar consumir muchos registros de una consulta en Web Services

Publicar un comentario en la entrada