remove non ascii whitespaces

This commit is contained in:
JMARyA 2024-01-17 09:44:04 +01:00
parent 598a10bc28
commit 5a6d6c4d13
Signed by: jmarya
GPG key ID: 901B2ADDF27C2263
117 changed files with 1928 additions and 1928 deletions

View file

@ -19,9 +19,9 @@ http [flags] [METHOD] URL [ITEM [ITEM]]
```
### Querystring parameters
If you find yourself manually constructing URLs with querystring parameters on the terminal, you may appreciate the `param==value` syntax for appending [URL](../../internet/URL.md) parameters.
If you find yourself manually constructing URLs with querystring parameters on the terminal, you may appreciate the `param==value` syntax for appending [URL](../../internet/URL.md) parameters.
With that, you dont have to worry about escaping the `&` separators for your [shell](../cli/Shell.md). Additionally, any special characters in the parameter name or value get automatically [URL](../../internet/URL.md)-escaped (as opposed to the parameters specified in the full [URL](../../internet/URL.md), which HTTPie doesnt modify).
With that, you dont have to worry about escaping the `&` separators for your [shell](../cli/Shell.md). Additionally, any special characters in the parameter name or value get automatically [URL](../../internet/URL.md)-escaped (as opposed to the parameters specified in the full [URL](../../internet/URL.md), which HTTPie doesnt modify).
```shell
$ http https://api.github.com/search/repositories q==httpie per_page==1
```
@ -33,16 +33,16 @@ GET /search/repositories?q=httpie&per_page=1 HTTP/1.1
### Request Items
| Item Type | Description |
| ------------------------------------------------------------:| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| HTTP Headers `Name:Value` | Arbitrary [HTTP](../../internet/HTTP.md) header, e.g. `X-API-Token:123` |
| [URL](../../internet/URL.md) parameters `name==value` | Appends the given name/value pair as a querystring parameter to the [URL](../../internet/URL.md). The `==` separator is used. |
| Data Fields `field=value` | Request data fields to be serialized as a [JSON](../../files/JSON.md) object (default), to be form-encoded (with `--form, -f`), or to be serialized as `multipart/form-data` (with `--multipart`) |
| Raw JSON fields `field:=json` | Useful when sending [JSON](../../files/JSON.md) and one or more fields need to be a `Boolean`, `Number`, nested `Object`, or an `Array`, e.g., `meals:='["ham","spam"]'` or `pies:=[1,2,3]` (note the quotes) |
| File upload fields `field@/dir/file`, `field@file;type=mime` | Only available with `--form`, `-f` and `--multipart`. For example `screenshot@~/Pictures/img.png`, or `'cv@cv.txt;type=text/markdown'`. With `--form`, the presence of a file field results in a `--multipart` request |
| HTTP Headers `Name:Value` | Arbitrary [HTTP](../../internet/HTTP.md) header, e.g. `X-API-Token:123` |
| [URL](../../internet/URL.md) parameters `name==value` | Appends the given name/value pair as a querystring parameter to the [URL](../../internet/URL.md). The `==` separator is used. |
| Data Fields `field=value` | Request data fields to be serialized as a [JSON](../../files/JSON.md) object (default), to be form-encoded (with `--form, -f`), or to be serialized as `multipart/form-data` (with `--multipart`) |
| Raw JSON fields `field:=json` | Useful when sending [JSON](../../files/JSON.md) and one or more fields need to be a `Boolean`, `Number`, nested `Object`, or an `Array`, e.g., `meals:='["ham","spam"]'` or `pies:=[1,2,3]` (note the quotes) |
| File upload fields `field@/dir/file`, `field@file;type=mime` | Only available with `--form`, `-f` and `--multipart`. For example `screenshot@~/Pictures/img.png`, or `'cv@cv.txt;type=text/markdown'`. With `--form`, the presence of a file field results in a `--multipart` request |
### JSON Requests
Data is send as [JSON](../../files/JSON.md) by default.
Non-string [JSON](../../files/JSON.md) fields use the `:=` separator, which allows you to embed arbitrary [JSON](../../files/JSON.md) data into the resulting [JSON](../../files/JSON.md) object. Additionally, text and raw [JSON](../../files/JSON.md) files can also be embedded into fields using `=@` and `:=@`:
Non-string [JSON](../../files/JSON.md) fields use the `:=` separator, which allows you to embed arbitrary [JSON](../../files/JSON.md) data into the resulting [JSON](../../files/JSON.md) object. Additionally, text and raw [JSON](../../files/JSON.md) files can also be embedded into fields using `=@` and `:=@`:
```shell
$ http PUT pie.dev/put \
name=John \ # String (default)
@ -79,7 +79,7 @@ Host: pie.dev
```
### Forms
Submitting forms is very similar to sending [JSON](../../files/JSON.md) requests. Often the only difference is in adding the `--form, -f` option, which ensures that data fields are serialized as, and `Content-Type` is set to `application/x-www-form-urlencoded; charset=utf-8`.
Submitting forms is very similar to sending [JSON](../../files/JSON.md) requests. Often the only difference is in adding the `--form, -f` option, which ensures that data fields are serialized as, and `Content-Type` is set to `application/x-www-form-urlencoded; charset=utf-8`.
#### Regular forms
```shell
@ -94,7 +94,7 @@ name=John+Smith
```
#### File upload forms
If one or more file fields is present, the serialization and content type is `multipart/form-data`:
If one or more file fields is present, the serialization and content type is `multipart/form-data`:
```shell
$ http -f POST pie.dev/post name='John Smith' cv@~/files/data.xml
```
@ -107,7 +107,7 @@ The request above is the same as if the following [HTML](../../internet/HTML.md)
</form>
```
Please note that `@` is used to simulate a file upload form field, whereas `=@` just embeds the file content as a regular text field value.
Please note that `@` is used to simulate a file upload form field, whereas `=@` just embeds the file content as a regular text field value.
When uploading files, their content type is inferred from the file name. You can manually override the inferred content type:
```shell
@ -115,7 +115,7 @@ $ http -f POST pie.dev/post name='John Smith' cv@'~/files/data.bin;type=applicat
```
### HTTP headers
To set custom headers you can use the `Header:Value` notation:
To set custom headers you can use the `Header:Value` notation:
```shell
$ http pie.dev/headers User-Agent:Bacon/1.0 'Cookie:valued-visitor=yes;foo=bar' \
X-Foo:Bar Referer:https://httpie.org/
@ -146,24 +146,24 @@ Host: <taken-from-URL>
All of these can be overwritten or unset.
#### Reading headers from a file
You can read headers from a file by using the `:@` operator. This would also effectively strip the newlines from the end.
You can read headers from a file by using the `:@` operator. This would also effectively strip the newlines from the end.
```shell
$ http pie.dev/headers X-Data:@files/text.txt
```
#### Empty headers and header un-setting
To unset a previously specified header (such a one of the default headers), use `Header:`:
To unset a previously specified header (such a one of the default headers), use `Header:`:
```shell
$ http pie.dev/headers Accept: User-Agent:
```
To send a header with an empty value, use `Header;`, with a semicolon:
To send a header with an empty value, use `Header;`, with a semicolon:
```shell
$ http pie.dev/headers 'Header;'
```
Please note that some internal headers, such as `Content-Length`, cant be unset if they are automatically added by the client itself.
Please note that some internal headers, such as `Content-Length`, cant be unset if they are automatically added by the client itself.
#### Multiple header values with the same name
If the request is sent with multiple headers that are sharing the same name, then the HTTPie will send them individually.
@ -190,7 +190,7 @@ Numbers: one,two
Also be aware that if the current session contains any headers they will get overwritten by individual commands when sending a request instead of being joined together.
### Offline mode
Use `--offline` to construct [HTTP](../../internet/HTTP.md) requests without sending them anywhere. With `--offline`, HTTPie builds a request based on the specified options and arguments, prints it to `stdout`, and then exits. It works completely offline; no network connection is ever made. This has a number of use cases, including:
Use `--offline` to construct [HTTP](../../internet/HTTP.md) requests without sending them anywhere. With `--offline`, HTTPie builds a request based on the specified options and arguments, prints it to `stdout`, and then exits. It works completely offline; no network connection is ever made. This has a number of use cases, including:
Generating API documentation examples that you can copy & paste without sending a request:
```shell
@ -210,10 +210,10 @@ $ http --offline POST pie.dev/post hello=world > request.http
$ nc pie.dev 80 < request.http
```
You can also use the `--offline` mode for debugging and exploring [HTTP](../../internet/HTTP.md) and HTTPie, and for “dry runs”.
You can also use the `--offline` mode for debugging and exploring [HTTP](../../internet/HTTP.md) and HTTPie, and for “dry runs”.
### Cookies
[HTTP](../../internet/HTTP.md) clients send [cookies](../../internet/Cookie.md) to the server as regular [HTTP](../../internet/HTTP.md) headers. That means, HTTPie does not offer any special syntax for specifying cookies — the usual `Header:Value` notation is used:
[HTTP](../../internet/HTTP.md) clients send [cookies](../../internet/Cookie.md) to the server as regular [HTTP](../../internet/HTTP.md) headers. That means, HTTPie does not offer any special syntax for specifying cookies — the usual `Header:Value` notation is used:
Send a single [cookie](../../internet/Cookie.md):
```shell
@ -230,7 +230,7 @@ Host: pie.dev
User-Agent: HTTPie/0.9.9
```
Send multiple cookies (note: the header is quoted to prevent the [shell](../cli/Shell.md) from interpreting the `;`):
Send multiple cookies (note: the header is quoted to prevent the [shell](../cli/Shell.md) from interpreting the `;`):
```shell
$ http pie.dev/cookies 'Cookie:sessionid=foo;another-cookie=bar'
@ -263,7 +263,7 @@ https -A bearer -a token pie.dev/bearer
```
#### Password prompt
If you omit the password part of `--auth, -a`, HTTPie securely prompts you for it:
If you omit the password part of `--auth, -a`, HTTPie securely prompts you for it:
```shell
$ http -a username pie.dev/basic-auth/username/password
@ -275,30 +275,30 @@ By default, [HTTP](../../internet/HTTP.md) redirects are not followed and only t
$ http pie.dev/redirect/3
```
#### Follow `Location`
To instruct HTTPie to follow the `Location` header of `30x` responses and show the final response instead, use the `--follow, -F` option:
#### Follow `Location`
To instruct HTTPie to follow the `Location` header of `30x` responses and show the final response instead, use the `--follow, -F` option:
```shell
$ http --follow pie.dev/redirect/3
```
With `307 Temporary Redirect` and `308 Permanent Redirect`, the method and the body of the original request are reused to perform the redirected request. Otherwise, a body-less `GET` request is performed.
With `307 Temporary Redirect` and `308 Permanent Redirect`, the method and the body of the original request are reused to perform the redirected request. Otherwise, a body-less `GET` request is performed.
#### Showing intermediary redirect responses
If you wish to see the intermediary requests/responses, then use the `--all` option:
If you wish to see the intermediary requests/responses, then use the `--all` option:
```shell
$ http --follow --all pie.dev/redirect/3
```
#### Limiting maximum redirects followed
To change the default limit of maximum `30` redirects, use the `--max-redirects=<limit>` option:
To change the default limit of maximum `30` redirects, use the `--max-redirects=<limit>` option:
```shell
$ http --follow --all --max-redirects=2 pie.dev/redirect/3
```
### Proxies
You can specify proxies to be used through the `--proxy` argument for each protocol (which is included in the value in case of redirects across protocols):
You can specify proxies to be used through the `--proxy` argument for each protocol (which is included in the value in case of redirects across protocols):
```shell
$ http --proxy=http:http://10.10.1.10:3128 --proxy=https:https://10.10.1.10:1080 example.org
```
@ -309,9 +309,9 @@ $ http --proxy=http:http://user:pass@10.10.1.10:3128 example.org
```
#### Environment variables
You can also configure proxies by [environment variables](../../linux/Environment%20Variables.md) `ALL_PROXY`, `HTTP_PROXY` and `HTTPS_PROXY`, and the underlying [Requests library](https://requests.readthedocs.io/en/latest/) will pick them up. If you want to disable proxies configured through the [environment variables](../../linux/Environment%20Variables.md) for certain hosts, you can specify them in `NO_PROXY`.
You can also configure proxies by [environment variables](../../linux/Environment%20Variables.md) `ALL_PROXY`, `HTTP_PROXY` and `HTTPS_PROXY`, and the underlying [Requests library](https://requests.readthedocs.io/en/latest/) will pick them up. If you want to disable proxies configured through the [environment variables](../../linux/Environment%20Variables.md) for certain hosts, you can specify them in `NO_PROXY`.
In your `~/.bash_profile`:
In your `~/.bash_profile`:
```shell
export HTTP_PROXY=http://10.10.1.10:3128
export HTTPS_PROXY=https://10.10.1.10:1080
@ -319,13 +319,13 @@ export NO_PROXY=localhost,example.com
```
#### SOCK
Usage for SOCKS is the same as for other types of proxies:
Usage for SOCKS is the same as for other types of proxies:
```shell
$ http --proxy=http:socks5://user:pass@host:port --proxy=https:socks5://user:pass@host:port example.org
```
### HTTPS
To skip the hosts SSL certificate verification, you can pass `--verify=no` (default is `yes`):
To skip the hosts SSL certificate verification, you can pass `--verify=no` (default is `yes`):
```shell
$ http --verify=no https://pie.dev/get
@ -338,16 +338,16 @@ By default, HTTPie only outputs the final response and the whole response messag
| --------------------------:| -------------------------------------------------------------------------------------------------- |
| `--headers, -h` | Only the response headers are printed |
| `--body, -b` | Only the response body is printed |
| `--meta, -m` | Only the response metadata is printed |
| `--verbose, -v` | Print the whole [HTTP](../../internet/HTTP.md) exchange (request and response). This option also enables `--all` (see below) |
| `--verbose --verbose, -vv` | Just like `-v`, but also include the response metadata. |
| `--meta, -m` | Only the response metadata is printed |
| `--verbose, -v` | Print the whole [HTTP](../../internet/HTTP.md) exchange (request and response). This option also enables `--all` (see below) |
| `--verbose --verbose, -vv` | Just like `-v`, but also include the response metadata. |
| `--print, -p` | Selects parts of the [HTTP](../../internet/HTTP.md) exchange |
| `--quiet, -q` | Dont print anything to `stdout` and `stderr` |
| `--quiet, -q` | Dont print anything to `stdout` and `stderr` |
### Download mode
HTTPie features a download mode in which it acts similarly to [wget](../cli/network/wget.md).
HTTPie features a download mode in which it acts similarly to [wget](../cli/network/wget.md).
When enabled using the `--download, -d` flag, response headers are printed to the terminal (`stderr`), and a progress bar is shown while the response body is being saved to a file.
When enabled using the `--download, -d` flag, response headers are printed to the terminal (`stderr`), and a progress bar is shown while the response body is being saved to a file.
```shell
$ http --download https://github.com/httpie/cli/archive/master.tar.gz
```
@ -365,11 +365,11 @@ Done. 251.30 kB in 2.73862s (91.76 kB/s)
#### Downloaded filename
There are three mutually exclusive ways through which HTTPie determines the output filename (with decreasing priority):
1. You can explicitly provide it via `--output, -o`. The file gets overwritten if it already exists (or appended to with `--continue, -c`).
2. The server may specify the filename in the optional `Content-Disposition` response header. Any leading dots are stripped from a server-provided filename.
3. The last resort HTTPie uses is to generate the filename from a combination of the request [URL](../../internet/URL.md) and the response `Content-Type`. The initial [URL](../../internet/URL.md) is always used as the basis for the generated filename — even if there has been one or more redirects.
1. You can explicitly provide it via `--output, -o`. The file gets overwritten if it already exists (or appended to with `--continue, -c`).
2. The server may specify the filename in the optional `Content-Disposition` response header. Any leading dots are stripped from a server-provided filename.
3. The last resort HTTPie uses is to generate the filename from a combination of the request [URL](../../internet/URL.md) and the response `Content-Type`. The initial [URL](../../internet/URL.md) is always used as the basis for the generated filename — even if there has been one or more redirects.
To prevent data loss by overwriting, HTTPie adds a unique numerical suffix to the filename when necessary (unless specified with `--output, -o`).
To prevent data loss by overwriting, HTTPie adds a unique numerical suffix to the filename when necessary (unless specified with `--output, -o`).
#### Piping while downloading
You can also redirect the response body to another program while the response headers and progress are still shown in the terminal:
@ -379,17 +379,17 @@ $ http -d https://github.com/httpie/cli/archive/master.tar.gz | tar zxf -
```
#### Resuming downloads
If `--output, -o` is specified, you can resume a partial download using the `--continue, -c` option. This only works with servers that support `Range` requests and `206 Partial Content` responses. If the server doesnt support that, the whole file will simply be downloaded:
If `--output, -o` is specified, you can resume a partial download using the `--continue, -c` option. This only works with servers that support `Range` requests and `206 Partial Content` responses. If the server doesnt support that, the whole file will simply be downloaded:
```shell
$ http -dco file.zip example.org/file
```
`-dco` is shorthand for `--download` `--continue` `--output`.
`-dco` is shorthand for `--download` `--continue` `--output`.
### Sessions
By default, every request HTTPie makes is completely independent of any previous ones to the same host.
However, HTTPie also supports persistent sessions via the `--session=SESSION_NAME_OR_PATH` option. In a session, custom [HTTP](../../internet/HTTP.md) headers (except for the ones starting with `Content-` or `If-`), authentication, and cookies (manually specified or sent by the server) persist between requests to the same host.
However, HTTPie also supports persistent sessions via the `--session=SESSION_NAME_OR_PATH` option. In a session, custom [HTTP](../../internet/HTTP.md) headers (except for the ones starting with `Content-` or `If-`), authentication, and cookies (manually specified or sent by the server) persist between requests to the same host.
```shell
# Create a new session:
@ -405,7 +405,7 @@ $ http --session=./session.json pie.dev/headers
All session data, including credentials, prompted passwords, [cookie](../../internet/Cookie.md) data, and custom headers are stored in plain text. That means session files can also be created and edited manually in a text editor—they are regular [JSON](../../files/JSON.md). It also means that they can be read by anyone who has access to the session file.
#### Readonly session
To use the original session file without updating it from the request/response exchange after it has been created, specify the session name via `--session-read-only=SESSION_NAME_OR_PATH` instead.
To use the original session file without updating it from the request/response exchange after it has been created, specify the session name via `--session-read-only=SESSION_NAME_OR_PATH` instead.
```shell
# If the session file doesnt exist, then it is created:
$ http --session-read-only=./ro-session.json pie.dev/headers Custom-Header:orig-value