Как передать несколько параметров запроса xargs в httpie? - PullRequest
0 голосов
/ 15 октября 2019

Я попытался ниже передать параметры в httpie, и он неожиданно превратился в метод POST.

1)
$ echo "a1 b1" | xargs -t -n2 bash -c 'http -v https://httpbin.org/anything arg1==$0 arg2==$1'
bash -c http -v https://httpbin.org/anything arg1==$0 arg2==$1 a1 b1 
2)
$ echo "arg1==a1 arg2==b1" | xargs -t -n2 bash -c 'http -v https://httpbin.org/anything'
bash -c http -v https://httpbin.org/anything arg1==a1 arg2==b1

1-й возвращается ниже и кажется, что есть дополнительные "a1 b1", собственно запрещающиеrequest.

bash -c http -v https://httpbin.org/anything arg1 == $ 0 arg2 == $ 1 a1 b1

2-йвозвращается, казалось бы, не слишком далеко, но реальный метод превратился в POST.

Есть ли способ передать несколько параметров в httpie?

Ответы [ 2 ]

0 голосов
/ 17 октября 2019

Даже если вручную вставить строки вроде:

$ echo 'http -v https://httpbin.org/anything arg1==a1 arg2==b2' | bash

не работает так, как показано ниже:

$ http -v https://httpbin.org/anything arg1==a1 arg2==b2

Я не понимаю причину этого, но просто еслиЯ указываю метод, он работал.

$ echo "a1 b1" | xargs -t -n2 bash -c 'http -v GET https://httpbin.org/anything arg1==$0 arg2==$1
                                               ^^^

, и я думаю, что я получил причину, это из-за stdin, поэтому его можно избежать с помощью опции --ignore-stdin.

0 голосов
/ 16 октября 2019

Вот способ достижения вашей цели:

echo "a1 b1" |
  awk '{print "http -v https://httpbin.org/anything arg1=="$1" arg2=="$2}' |
  bash
...