管道订购问题?将stdin管道化为http请求,并将结果管道化为stdout



我正在查看问题"http客户端"

我制作了以下通过2/3测试的解决方案:

request = require 'request'
#Generate a read/writable stream piping into the outbuff
myRequest = request.post("http://localhost:8099").pipe(process.stdout)
process.stdin.pipe(myRequest)

出现以下错误:

operator: equal
expected:
  'azzwccnjupnvccvwcddunnmukpnikeos.nPaps'wnheghuuyuuvnwunbzcawcsenvzmnouggkneoascn'
actual:
  'allseenforndeedsettonnyournquick.nTark'snbimboowoodnsonpleasekindlyncommunicaken'

但是,当我按此顺序管道输出时,它工作得很好。

request = require 'request'
#Generate a read/writable stream piping into the outbuff
myRequest = request.post("http://localhost:8099")
process.stdin.pipe(myRequest).pipe(process.stdout)

这两种解决方案不应该是一样的吗?我在这里错过了什么?

在第一个示例中,您将http响应传递到stdout(但从不写入请求流)。然后将输入从stdin直接传递到stdout。因此,有两个流写入stdout。由此产生的情况看起来像:

HTTP响应-----|v标准输入------->标准输出

在第二个示例中,将stdin的输入传递到请求流,并将该请求的响应传递到stdout。由此产生的情况看起来像:

STDIN---->HTTP请求/响应---->STDOUT

相关内容

  • 没有找到相关文章

最新更新