Httpie: рдХрд░реНрд▓ рдЬреИрд╕реЗ рдХрдЪреНрдЪреЗ рд╢рд░реАрд░ рдХреЗ рд▓рд┐рдП `-d, --data` рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз

рдХреЛ рдирд┐рд░реНрдорд┐рдд 31 рдЕрдХреНрддреВре░ 2016  ┬╖  18рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: httpie/httpie

рдЕрдиреБрд░реЛрдз рд╕рд░рд▓ рд╣реИ, рдХреЗрд╡рд▓ curl рдЬреИрд╕реЗ рдХрдЪреНрдЪреЗ рдбреЗрдЯрд╛ рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП:

http :/api/user -d 'MyRawData...'

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдпрджрд┐ рдЖрдк JSON рдпрд╛ рдлреЙрд░реНрдо рдбреЗрдЯрд╛ рднреЗрдЬ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ _"рдЕрдиреБрд░реЛрдз рдЖрдЗрдЯрдо"_ рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ:

http :/api/hey say=Hello to=me тАж

рдФрд░ рдпрд╣ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрдЪрд┐рдд рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдпрд╣ рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ рд╣реИ! рдФрд░ рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдРрд╕рд╛ рдХреБрдЫ рд╣реИ рдЬреЛ JSON рдирд╣реАрдВ рд╣реИ рдпрд╛ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рдХреБрдЫ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

echo 'MyRawData...' | http :/api/hey

рд▓реЗрдХрд┐рди рдпрд╣ рдЕрд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╣реИ, HTTPie рдХрд╛ рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рдордиреБрд╖реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП _cURL рдЬреИрд╕рд╛ рдЯреВрд▓ рд╣реИ, рдФрд░ рдпрд╣ рдорд╛рдорд▓рд╛ рдЙрд╕ рд╕рд┐рджреНрдзрд╛рдВрдд рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, curl рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП HTTPie рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╣реИред рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдХрдорд╛рдВрдб рдЬреЛрдбрд╝рдирд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ | < рдЬреИрд╕реЗ рдмрджрд╕реВрд░рдд рд╡рд░реНрдгреЛрдВ рдХреЗ рд╕рд╛рде рдкрд╛рдЗрдк рдХрд░рдирд╛ рд╕рд┐рд░реНрдл рдЗрд╕рд▓рд┐рдП рдХрд┐ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╡рд┐рдХрд▓реНрдк рдЧрд╛рдпрдм рд╣реИ, _рдорд╛рдирд╡-рдЕрдиреБрдХреВрд▓_ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИред

-d рд╡рд┐рдХрд▓реНрдк рдХреЛ http рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реИ?

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЖрдк рдмрд╕ http POST example.org <<< "foo bar" рдпрд╛ http POST example.org < file.name . рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рд╕рднреА 18 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

http рдореЗрдВ -d рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реИ?

рдЗрд╕рдореЗрдВ рдХреБрдЫ рднреА _рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ_ рдЧрд▓рдд рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдореИрдВ рд╕рд┐рд░реНрдл рдкрд╛рдЗрдкрд┐рдВрдЧ рдХреНрд▓реАрдирд░ рдвреВрдВрдврддрд╛ рд╣реВрдВ рдФрд░ рджреГрдврд╝рддрд╛ рд╕реЗ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ рдЬрдм рд╡рд╣реА рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рддрд░реАрдХрд╛ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕реА рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдкрд╛рдЗрдкрд┐рдВрдЧ рдореМрдЬреВрдж рд╣реИ (рдЕрд░реНрдерд╛рдд рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ _data_ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП), рдФрд░ рдпрд╣ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реИ, рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╕рднреНрдп рд╕реАрдПрд▓рдЖрдИ рдЙрдкрдХрд░рдг рдкрд╛рдЗрдкрд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ ( curl рдХреЗ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде) рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдЕрд╡рдзрд╛рд░рдгрд╛ рд╕реАрдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рддреБрд▓рдирд╛ рдХрд░рдирд╛:

httpie

рдЕрдиреБрд░реЛрдз рдбреЗрдЯрд╛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рддрд░реАрдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рд╕реНрдЯрдб (рдорд╛рдирдХ рдЗрдирдкреБрдЯ) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рдмрдлрд╝рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЕрдиреБрд░реЛрдз рдирд┐рдХрд╛рдп рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдЧреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХрд░реНрд▓

-d, --data <data>
              (HTTP)  Sends  the  specified data in a POST request to the HTTP server, in the same way that a browser
              does when a user has filled in an HTML form and presses the submit button. This will cause curl to pass
              the  data  to  the  server  using  the  content-type application/x-www-form-urlencoded.  Compare to -F,
              --form.

              -d, --data is the same as --data-ascii. --data-raw is almost the same  but  does  not  have  a  special
              interpretation of the @ character. To post data purely binary, you should instead use the --data-binary
              option.  To URL-encode the value of a form field you may use --data-urlencode.

              If any of these options is used more than once on the same command line, the data pieces specified will
              be merged together with a separating &-symbol. Thus, using '-d name=daniel -d skill=lousy' would gener-
              ate a post chunk that looks like 'name=daniel&skill=lousy'.

              If you start the data with the letter @, the rest should be a file name to read the data from, or -  if
              you  want  curl  to read the data from stdin. Multiple files can also be specified. Posting data from a
              file named 'foobar' would thus be done with --data @foobar. When --data is told to  read  from  a  file
              like  that,  carriage  returns  and newlines will be stripped out. If you don't want the @ character to
              have a special interpretation use --data-raw instead.

рд╣рд╛рдВ, рдореИрдВ рдЖрдкрд╕реЗ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓ рдореЗрдВ рдкрд╛рдЗрдкрд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫреА рд╕реБрд╡рд┐рдзрд╛ рд╣реИ, рдФрд░ рдореИрдВрдиреЗ рдПрдХ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓ рднреА рдмрдирд╛рдпрд╛ рд╣реИ рдЬреЛ рдкрд╛рдЗрдкрд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ ( Mongotail ), рдФрд░ рд╕рдЪ рдХрд╣реВрдВ рддреЛ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ curl рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рджреЛрдиреЛрдВ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдЬрдЯрд┐рд▓рддрд╛ рдирд╣реАрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпреВрдирд┐рдХреНрд╕ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдореЗрдВ рд▓рдЧрднрдЧ рд╕рднреА рдЬреНрдЮрд╛рдд рд╕реАрдПрд▓рдЖрдИ рдЙрдкрдХрд░рдг рджреЛрдиреЛрдВ рддрд░реАрдХреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛. cat , grep , find , tail ...

рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдЖрджреЗрд╢ рдЖрдо рддреМрд░ рдкрд░ stdin рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рддрд░реНрдХ рд╕реВрдЪреА рдпрд╛ рдХрдЪреНрдЪреЗ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛ рдХреЛ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рддрд░реНрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдЪреНрдЪреЗ рдбреЗрдЯрд╛ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рдХрд╛рдлреА рдЕрд╕рд╛рдорд╛рдиреНрдп рд╣реИред

(рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдХреА рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдХреНрдпрд╛ рд▓рд┐рдЦрд╛ рдерд╛: curl рд╕реНрдЯрдбрд┐рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджреЗрд╢ рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, --data-binary @- ред)

рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдХ рдмрдЧ рдлрд╛рдЗрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдЖрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рд╢рд╛рдпрдж рдпрд╣ рдмрдЧ рдирд╣реАрдВ рд╣реИ рдмрд▓реНрдХрд┐ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ "рдХрд░реНрд▓" рдХреЗ рдмрдЬрд╛рдп "httpie" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрджрд▓ рд░рд╣рд╛ рдерд╛ред рдЕрдиреБрд░реЛрдз рдПрдХ http рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдЦрд╛рд▓реА рд╢рд░реАрд░ рд╡рд╛рд▓реЗ POST рд╣реИрдВред рдореИрдВ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ docker exec -i ${container} bash -x рдореЗрдВ рдкрд╛рдЗрдк рдХрд░рдХреЗ рдЪрд▓рд╛рддрд╛ рд╣реВрдВред

рдореБрдЭреЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рдХрдард┐рди рд╕рдордп рдерд╛ рдХрд┐ http POST рдХрдорд╛рдВрдб, рдЬрдмрдХрд┐ рдпрд╣ рдПрдХ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рд╢реЗрд▓ рд╕реЗ рдЪрд▓рдиреЗ рдкрд░ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рдерд╛, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рддреБрд░рдВрдд рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрди рд░рд╣рд╛ рдерд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ http рдореЗрдВ рд╕реНрдЯрдбреАрди рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╣реИ docker exec ред рдпрд╣ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ " echo -n " рдХреЛ рдкрд╛рдЗрдк рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

#!/bin/bash
echo "STARTING..."
echo -n | http POST ...     # this replaces: curl -XPOST --data-binary '' ...
echo "Without the 'echo -n' above this statement would not be reached."
echo "DONE"

( @jamshid рдЖрдк POST рдХреЗрд╡рд▓ http POST httpbin.org/post рдХреЗ рд╕рд╛рде рдПрдХ рдЦрд╛рд▓реА рд╢рд░реАрд░ред рдХреГрдкрдпрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ HTTPie рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝реЗрдВ - рдЖрдк --ignore-stdin рд╡рд┐рдХрд▓реНрдк рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрд╣ рдЕрд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджрд╛ рд╣реИ , рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдХреГрдкрдпрд╛ рдпрд╣рд╛рдВ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓реЗрдВ ред)

рдХреНрдпрд╛ рдореИрдВ рдпрд╣ рд╕реЛрдЪрдиреЗ рдореЗрдВ рд╕рд╣реА рд╣реВрдВ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рд╕реЗ 15.1 рдЕрдиреБрд░реЛрдз рдбреЗрдЯрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдореВрд▓ рдЕрдиреБрд░реЛрдз рдХреЛ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдПрдХ рддрд░рдл рдХреЗ рд░реВрдк рдореЗрдВ, рдореЗрд░реА рдЗрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдХрд▓ рд╕реЗ рдкрд╣рд▓реЗ HTTPie рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддрд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ 3 рдШрдВрдЯреЗ рд╕реЗ рдмрдЪрддрд╛ рдерд╛ рдпрд╛ рдЗрд╕рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдореЗрд░реА рдПрдХреНрд╕рдПрдордПрд▓ рдлрд╛рдЗрд▓ рдореЗрдВ рд▓рд╛рдЗрди рдмреНрд░реЗрдХ рдХреНрдпреЛрдВ рд╕рдВрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рдерд╛ред (рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдпрд╣ рдореЗрд░рд╛ рдРрдк рдерд╛ рд▓реЗрдХрд┐рди рдпрд╣ рдХрд░реНрд▓ рдерд╛, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЕрдХреЗрд▓реЗ рдбреЗрдЯрд╛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ --data-binary рд╡рд┐рдХрд▓реНрдк рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред) HTTPie рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ, @DavidOliver ред @mrsarm рдиреЗ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрд╛рд╕ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛, рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдирд╣реАрдВред

+1

рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ @jakubroztocil рдХреЗ рд╕рд╛рде MR рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВрдЧреЗ?

рдЖрдк рдмрд╕ http POST example.org <<< "foo bar" рдпрд╛ http POST example.org < file.name . рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

http :/api/hey say=Hello to=meтАж

рдЖрдк рдмрд╕ http POST example.org <<< "foo bar" рдпрд╛ http POST example.org < file.name . рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рдкреЙрд╡рд░рд╢реЗрд▓ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рд▓рдЧ рд░рд╣рд╛ рдерд╛, 'raw body data' | http post :8080/api/events рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдкреЙрд╡рд░рд╢реЗрд▓ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛,
рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдХрдЪреНрдЪреЗ рд╢рд░реАрд░ рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП -d, --data рдпрд╛ рдРрд╕рд╛ рдХреБрдЫ рдЪрд╛рд╣рддреЗ рд╣реИрдВ

рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЖрдк "рдпрд╣рд╛рдВ рдмреИрд╢ рд╕реНрдЯреНрд░рд┐рдВрдЧ" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

http example.com/ <<<'{"name": "John"}'

рдпреВрдЖрдИ-рд╡рд╛рд░, рд╡рд┐рдХрд▓реНрдк рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рдореБрдЭреЗ рдПрдХ рдЦрд╛рд▓реА рдЬреЗрд╕рди рдСрдмреНрдЬреЗрдХреНрдЯ ( {} ) рднреЗрдЬрдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдПрдХ рдЕрдЬреАрдм рд▓реЗрдХрд┐рди рд╡реИрдз рдЙрдкрдпреЛрдЧ рдХреЗрд╕ рд╣реИред

@minusf : рдореБрдЭреЗ рдПрдХ рдЦрд╛рд▓реА рдЬреЗрд╕рди рдСрдмреНрдЬреЗрдХреНрдЯ ( {} ) рднреЗрдЬрдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдПрдХ рдЕрдЬреАрдм рд▓реЗрдХрд┐рди рд╡реИрдз рдЙрдкрдпреЛрдЧ рдХреЗрд╕ рд╣реИред

$ echo '{}' | http httpbin.org/post

рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░рддреЗ рд╕рдордп рдиреНрдпреВрд▓рд╛рдЗрди рдХреЛ рддреНрдпрд╛рдЧрдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛?

$ echo 20 | http POST httpbin.org/post

рджрд╛рдпрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдбреЗрдЯрд╛ "data": "20\n" . рд╣реЛрдЧрд╛

@hahattan рдЖрдк echo рдХреЗ рд╕рд╛рде рдЕрдиреБрдЧрд╛рдореА рдиреНрдпреВрд▓рд╛рдЗрди рд╡рд░реНрдг рдХреЛ рдкреНрд░рд┐рдВрдЯ рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрджреЗрд╢ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ -n :

$ echo -n foo | http httpbin.org/post
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

Govinda-Fichtner picture Govinda-Fichtner  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

cunde picture cunde  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Abdallah-Obaid picture Abdallah-Obaid  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

loretoparisi picture loretoparisi  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jclem picture jclem  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ