我注意到httpie
python 工具在以下两种情况下给出了不同的结果:
$ http google.com
$ http google.com > out.txt
该文件out.txt
缺少第一种情况下存在的标头。
用于sys.stdout.isatty
判断stdout
是终端(“tty”)还是文件,并根据它打印不同的输出,例如:
import sys
if sys.stdout.isatty():
print "Hello terminal!"
else:
print "Hello non-terminal!"
在您的手册页上,http
您可以找到以下内容
Output options:
--print WHAT, -p WHAT
String specifying what the output should contain:
'H' request headers 'B' request body 'h' response headers 'b' response body
The default behaviour is 'hb' (i.e., the response headers and body is
printed), if standard output is not redirected. If the output is piped
to another program or to a file, then only the response body is printed by
default.
这表明http
每当重定向输出时故意表现不同。要获得与未重定向输出相同的行为,您可以使用
`http --print hb google.com > out.txt`
(但还要注意,漂亮打印的行为与重定向不同。)