NSTask返回HTTP头
-
12-09-2019 - |
题
我经由NSTask运行/usr/bin/perl
或/usr/bin/php
和想要检索节目的HTTP标头。我已经正确地格式化的环境(Perl的要求ENV瓦尔与HTTP_
前缀),但无论是任务正在返回比原始输出的任何其他。我经历过上NSTask文档和手册页PHP和Perl,并没有看到任何方式强迫HTTP标头的输出。
任何想法?
修改:我知道这是一个古老的问题,但我只是重新发现了它,并意识到我应该汇报。问题是,我应该一直在使用php-cli
,而不是php
。我不得不从源下载和编译php-cli
得到这个工作,我期待。有一次,我没有,但是,它的工作就像一个魅力。 :)
解决方案
您可能必须前缀根据您的Perl或PHP脚本的原始输出你用HTTP头输出,通过你建立。
例如,你知道,从一个PHP脚本的原始输出将是内容型:text / html的,你可以从输出本身的长度。至少我认为这就是我实现了类似的解决方案时做到了。
其他提示
您无法查看或改变另一个进程的环境。唯一的例外是,你可以改变一个孩子进程的环境,但只有当您创建的过程。因此,你可以设置你的Perl或PHP子进程的初始环境,但你可以不读它有什么样的环境后,你当然不能查看什么样的环境它有它的时候退出。
您需要做的Perl或PHP脚本输出它的环境在某些格式,阅读到您的可可过程中,通过一个管道。
请问当你从终端运行脚本打印头?如果是这样,可能使用-[NSTask setStandard*:]
(可能使用NSPipe)可以帮助捕获输出。如果不是,则可能是web服务器喷射头,因为它处理CGI。
不隶属于 StackOverflow