cli
cli copied to clipboard
Make option redirect output from `--output/-o` to `stdin`
Checklist
- [x] I've searched for similar feature requests.
Enhancement request
I want to be able to redirect the output when using the --output/-o
flag to the stdin like this:
http www.example.com/?req=index.html --output -
Currently if I run it this way, it shows this error message:
Traceback (most recent call last):
File "/home/user/.local/bin/http", line 8, in <module>
sys.exit(main())
File "/home/user/.local/lib/python3.10/site-packages/httpie/__main__.py", line 9, in main
exit_status = main()
File "/home/user/.local/lib/python3.10/site-packages/httpie/core.py", line 162, in main
return raw_main(
File "/home/user/.local/lib/python3.10/site-packages/httpie/core.py", line 77, in raw_main
parsed_args = parser.parse_args(
File "/home/user/.local/lib/python3.10/site-packages/httpie/cli/argparser.py", line 172, in parse_args
self._setup_standard_streams()
File "/home/user/.local/lib/python3.10/site-packages/httpie/cli/argparser.py", line 250, in _setup_standard_streams
self.args.output_file.seek(0)
io.UnsupportedOperation: File or stream is not seekable.
Problem it solves
I know if the output format is normal we don't have to use this. But when the output is binary or the file contains some null bytes somewhere like %00
http
won't show the output. But we can rather use the --output/-o
to redirect the binary to a file.
I don't want to redirect to a new file, I just want to check the file content in a single command. This is more productive because I can now redirect the input stream to other programs like head
, xxd
etc.
Like this:
http example.com/binary -b --output - | head | xxd