1

我在下面尝试将参数传递给 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

第一个返回下面,似乎还有额外的“a1 b1”禁止正确请求。

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

第二个返回看似不太远,但实际方法变成了 POST。

有没有办法将多个参数传递给httpie?

4

2 回答 2

1

这是实现目标的一种方法:

echo "a1 b1" |
  awk '{print "http -v https://httpbin.org/anything arg1=="$1" arg2=="$2}' |
  bash
于 2019-10-15T21:18:27.420 回答
1

即使手动插入字符串,如:

$ 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 选项来避免它。

于 2019-10-17T16:23:27.033 回答