Pregunta

Estoy corriendo /usr/bin/perl o /usr/bin/php a través de un NSTask y desea recuperar los encabezados HTTP del programa. He formateado adecuadamente el medio ambiente (Perl requiere env vars a llevar el prefijo HTTP_), pero ninguno de la tarea están regresando aparte de la salida pura nada. He estado a través de la documentación sobre NSTask y las páginas del manual de PHP y Perl, y no he visto ninguna manera de forzar la salida de las cabeceras HTTP.

¿Alguna idea?

Editar : Me di cuenta que es una antigua pregunta, pero yo sólo redescubierto y se dio cuenta que debería informar. El problema era que yo he estado usando php-cli, y no php. Tenía que descargar y compilar php-cli desde la fuente hasta conseguir que esto funcione como esperaba. Una vez que lo hice, sin embargo, funcionó como un encanto. :)

¿Fue útil?

Solución

Es posible que tenga que prefijar su salida con la cabecera HTTP, construido por usted, basado en la salida de su prima Perl o PHP script.

Por ejemplo, se sabe que la producción en bruto de un script php sería del tipo de contenido: text / html, y se puede obtener la longitud de la salida del mismo. Al menos creo que eso es lo que hice cuando se implementa una solución similar.

Otros consejos

No se puede ver o cambiar el medio ambiente de otro proceso. La excepción es que se puede cambiar el entorno de un proceso hijo, pero sólo cuando se crea ese proceso. Por lo tanto, se puede configurar el entorno inicial de su Perl o PHP subproceso, pero no se puede leer lo que el medio ambiente tiene más tarde, y ciertamente no se puede ver qué ambiente que tenía cuando salió.

Es necesario hacer la salida del script Perl o PHP su entorno en algún formato, y leer que en su proceso de cacao a través de una tubería.

No imprime el guión las cabeceras cuando se ejecuta desde la Terminal? Si es así, tal vez usando -[NSTask setStandard*:] (tal vez usando NSPipe) puede ayudar a capturar la salida. Si no, es posible que el servidor web inyecta las cabeceras a medida que procesa el CGI.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top