Skip to content

Make option redirect output from --output/-o to stdin #1591

@h4r1337

Description

@h4r1337

Checklist

  • 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 

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or enhancementnewNeeds triage. Comments are welcome!

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions