Frage

Ich bin mit /usr/bin/perl oder /usr/bin/php über einen NSTask und wollen die HTTP-Header des Programms abzurufen. Ich habe formatiert richtig die Umwelt (Perl erfordert env vars mit HTTP_ werden Präfix), aber weder der Aufgabe alles andere als Rohausgangssignal zurückkehren. Ich bin durch die Dokumentation auf NSTask und die man-Seiten für PHP und Perl, und habe keine Möglichkeit gesehen, die Ausgabe von HTTP-Header zu erzwingen.

Irgendwelche Ideen?

Bearbeiten : Ich weiß, das eine alte Frage, aber ich entdeckte es und erkannte ich berichten sollte. Das Problem war, dass ich habe mit php-cli sollte, und nicht php. Ich musste herunterladen und kompilieren php-cli von der Quelle dieses zu erhalten, zu arbeiten, wie ich es erwartet hatte. Sobald ich es tat, aber es funktionierte wie ein Zauber. :)

War es hilfreich?

Lösung

Sie müssen möglicherweise die Ausgabe mit den HTTP-Header voranstellen, indem Sie auf der Rohausgangssignal von Ihrem Perl oder PHP-Skript gebaut basiert.

Zum Beispiel wissen Sie, dass die rohe Ausgabe von einem PHP-Skript von Content-Type sein würde: text / html, und Sie können die Länge vom Ausgang selbst zu bekommen. Zumindest glaube ich, dass das, was ich tat, als eine ähnliche Lösung zu implementieren.

Andere Tipps

Sie können nicht die Umgebung eines anderen Prozesses anzuzeigen oder zu ändern. Die Ausnahme ist, dass Sie die Umgebung eines Kindes Prozess ändern kann, aber nur, wenn Sie diesen Prozess erstellen. So können Sie die anfängliche Umgebung Ihres Perl oder PHP subprocess einrichten, aber Sie können nicht lesen, was Umwelt sie später hat, und man kann sicherlich nicht sehen, welche Umgebung sie hatte, als sie verlassen hat.

Sie müssen die Perl oder PHP-Skript Ausgabe seine Umgebung in einem gewissen Format zu machen, und das in Ihren Kakao Prozess durch ein Rohr lesen.

Ist das Skript der Header gedruckt werden, sobald es vom Terminal laufen? Wenn ja, vielleicht -[NSTask setStandard*:] mit (vielleicht NSPipe verwenden) kann helfen, die Ausgabe zu erfassen. Wenn nicht, ist es möglich, dass der Webserver spritzt die Header, wie es die CGI-Prozesse.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top