Estava tentando usar httpie para postar vários eventos usando a API http://open.sen.se/ . Isso aceita uma matriz de objetos sem nome na forma de:
[
{
"feed_id": 12345,
"value": "foo"
},
{
"feed_id":23456,
"value": 2134
},
...
]
Descobri que não consigo fazer o httpie criar JSON assim. A tentativa de usar o separador :=
para JSON bruto sem um nome de chave criou esta saída:
[victor<strong i="11">@klamm</strong> ~]$ http -p B api.sen.se/events/ :='[{"feed_id": 24571, "value": 64.0}, {"feed_id":24572, "value":60.0}]'
{
"": [
{
"feed_id": 24571,
"value": 64.0
},
{
"feed_id": 24572,
"value": 60.0
}
]
}
@chuma , isso você pode fazer passando o JSON bruto via STDIN
. Por exemplo:
echo '[{"feed_id": 24571, "value": 64.0}, {"feed_id":24572, "value":60.0}]' | http api.sen.se/events/
@jakubroztocil bom trabalho! voce resolve meu problema
@jakubroztocil , estou usando o http 0.9.2 e parece que não funciona mais isso.
Criei um test.php com o código:
<?php
print_r($_REQUEST);
Então tentei os pedidos abaixo:
echo '[{"feed_id": 24571, "valor": 64.0}, {"feed_id": 24572, "valor": 60.0}]' | http : //localhost/CRMvTiger_Rodobens/test.php
Retornar:
Variedade
(
)
echo '[{"feed_id": 24571, "valor": 64.0}, {"feed_id": 24572, "valor": 60.0}]' | http --form http: //localhost/CRMvTiger_Rodobens/test.php
Retornar:
Variedade
(
)
echo '[{"feed_id": 24571, "valor": 64.0}, {"feed_id": 24572, "valor": 60.0}]' | http --json http: //localhost/CRMvTiger_Rodobens/test.php
Retornar:
Variedade
(
)
echo '{"feed_id": 24571, "valor": 64.0}, {"feed_id": 24572, "valor": 60.0}' | http : //localhost/CRMvTiger_Rodobens/test.php
Retornar:
Variedade
(
)
echo '{"feed_id": 24571, "valor": 64.0}, {"feed_id": 24572, "valor": 60.0}' | http --json http: //localhost/CRMvTiger_Rodobens/test.php
Retornar:
Variedade
(
)
echo '{"feed_id": 24571, "valor": 64.0}, {"feed_id": 24572, "valor": 60.0}' | http --form http: //localhost/CRMvTiger_Rodobens/test.php
Retornar:
Variedade
(
[{"feed_id": _ 24571, _ "valor": _ 64_0}, _ {"feed_id": 24572, _ "valor": 60_0}
] =>
)
O único que retorna algo é o último, mas não era o que eu esperava, ele retornou todos os json como uma chave com um valor vazio.
Comentários muito úteis
@chuma , isso você pode fazer passando o JSON bruto via
STDIN
. Por exemplo: