ducaale / xh

Friendly and fast tool for sending HTTP requests
MIT License
5.49k stars 96 forks source link

[Proposal] Display remote IP address like chrome dev tools does #347

Closed owl-from-hogvarts closed 8 months ago

owl-from-hogvarts commented 8 months ago

IP address of responding server may be useful when:

remote IP address could be print as metadata somewhere before response in a form like:

Remote IP address: <ip-address>
HTTP/1.1 200 OK
...

It is wise to put this feature under dedicated option to not clutter output and mislead users

ducaale commented 8 months ago

We have --meta/-vv flags for printing response metadata so we can include remote IP in that metadata e.g

$ xh -vv localhost:3000/hello
GET /hello HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
User-Agent: xh/0.19.4

HTTP/1.1 200 OK
Content-Type: application/json
Date: Tue, 16 Jan 2024 21:41:27 GMT

{ "message": "hello world" }

Remote IP address: 127.0.0.1
Elapsed time: 0.21818s

Alternatively, any connection-related info could be printed before everything (see cURL). But this would prevent us from outputting the request before the request is actually executed

$ xh -vv localhost:3000/hello
Connected to 127.0.0.1 port 3000

GET /hello HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
User-Agent: xh/0.19.4

HTTP/1.1 200 OK
Content-Type: application/json
Date: Tue, 16 Jan 2024 21:41:27 GMT

{ "message": "hello world" }

Elapsed time: 0.21818s
blyxxyz commented 8 months ago

HTTPie issue: https://github.com/httpie/cli/issues/1495

This is maybe something we could handle by printing debug logs. Some of our dependencies already generate logs through log but we don't have a way to show them right now. They don't include the IP address but we could add our own log message for that (if we can get that info at all).

If we go that route then we don't have to worry as much about what HTTPie does.

ducaale commented 8 months ago

Addressed in #348