Request items
There are a few different request item types that provide aconvenient mechanism for specifying HTTP headers, simple JSON andform data, files, and URL parameters.
They are key/value pairs specified after the URL. All have incommon that they become part of the actual request that is sent and thattheir type is distinguished only by the separator used::
, =
, :=
, ==
, @
, [email protected]
, and :[email protected]
. The ones with an@
expect a file path as value.
Item Type | Description |
---|---|
HTTP HeadersName:Value | Arbitrary HTTP header, e.g. X-API-Token:123 . |
URL parametersname==value | Appends the given name/value pair as a querystring parameter to the URL.The == separator is used. |
Data Fieldsfield=value ,[email protected] | Request data fields to be serialized as a JSONobject (default), or to be form-encoded(—form, -f ). |
Raw JSON fieldsfield:=json ,field:[email protected] | Useful when sending JSON and one ormore 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). |
Form File Fields[email protected]/dir/file | Only available with —form, -f .For example [email protected]~/Pictures/img.png .The presence of a file field resultsin a multipart/form-data request. |
Note that data fields aren't the only way to specify request data:Redirected input is a mechanism for passing arbitrary request data.
Escaping rules
You can use \
to escape characters that shouldn't be used as separators(or parts thereof). For instance, foo\==bar
will become a data key/valuepair (foo=
and bar
) instead of a URL parameter.
Often it is necessary to quote the values, e.g. foo='bar baz'
.
If any of the field names or headers starts with a minus(e.g., -fieldname
), you need to place all such items after the specialtoken —
to prevent confusion with —arguments
:
- $ http httpbin.org/post -- -name-starting-with-dash=foo -Unusual-Header:bar
- POST /post HTTP/1.1
- -Unusual-Header: bar
- Content-Type: application/json
- {
- "-name-starting-with-dash": "foo"
- }