[英]Writing to a Perl Process Input Stream in Java
我正在尝试使用在UNIX上运行的java编程一个简单的Web服务器类。
WebServer类将调用一个perl脚本,该脚本将根据请求生成HTML。
考虑一下:
"description=asd&action=add"
byte[] byteParams
写入byte[] byteParams
如下所示 byteParams
才能生成适当的HTML 码:
String postParams = "/usr/bin/env REQUEST_METHOD=POST QUERY_STRING= " +" CONTENT_LENGTH=" + contentLength + " CONTENT_TYPE=" + contentType + " /usr/bin/perl " + filename;
Process perlProcess = Runtime.getRuntime().exec(postParams);
DataOutputStream writeToPerl = new DataOutputStream(perlProcess.getOutputStream());
//write the http post request body to writeToPerl
writeToPerl.write(byteParams, 0, byteParams.length);
InputStreamReader readFromPerlInputStream = new InputStreamReader(perlProcess.getInputStream());
BufferedReader readFromPerl = new BufferedReader(readFromPerlInputStream);
BufferedReader readFromPerlError = new BufferedReader(new InputStreamReader(perlProcess.getErrorStream()));
因此,现在我们有了perlProcess对象,该对象将读取UNIX中的环境变量以生成适当的HTML。
写入Perl Process对象的DataOutputStream之后,它会根据输入(HTTP Post正文)自动写入其标准输出吗?
还是我需要告诉Process对象读取我刚刚写到DataOutputStream writeToPerl
?
我找到了问题的答案。
写入Perl Process对象的DataOutputStream
之后,它将根据DataOutputStream
的输入自动写入其标准输出( BufferedReader readFromPerl
)。
我有一些文件许可问题,导致我问这个问题,因为在写入Perl对象的DataOutputStream
后没有从Perl对象的BufferedReader
中得到预期的结果
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.