我正在查看问题"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