2011-08-09 21 views
7

Używam prostego skryptu powłoki do testowania serwera http, który przetwarza żądania POST. Zwykle wygląda to tak:lwp-request w powłoce: jak wykonać żądanie POST z treścią?

echo "param1=value1&param2=value2" | POST localhost/service 

Ale teraz chcę przekazać również pewne json na stanowiskach ciała i to gdzie ja całkowicie brakuje punktu.

człowiek POST i google też nie pomogły.

Wygląda na to, że musi być albo bardzo prosty, albo całkowicie niemożliwy.

Dzięki za pomoc.

Odpowiedz

4

Albo ja czegoś brakuje, albo należy zrobić

 
$ echo -n '{"json":"data"}' | POST -c "application/json" 'http://localhost/service?param1=value1&param2=value2' 

Jeśli trzeba umieścić te parametry nie jako GET, ale również jako POST, a następnie wyszukaj dane wieloczęściowe.

+0

Prawdopodobnie masz na myśli 'echo -n '{" json ":" dane "}' | POST -c "application/json" localhost/service' To dobrze, ale nadal pozostawia mi problem z przekazywaniem parametrów żądania '" param1 = value1 & param2 = value2 "' –

+0

Zaktualizowałem odpowiedź. –

+0

Dzięki, dokładnie to, czego potrzebuję. Pozwól mi sprawdzić, jak to działa. –

1

Prawdopodobnie trzeba przekazać typ zawartości przy użyciu -c:

POST -c application/json 
+0

Czy nie byłbyś tak uprzejmy określić dokładny wygląd linii poleceń? "echo" parametr1 = wartość1 i parametr2 = wartość2 "| POST -c application/json "treść niektórych treści" localhost/service "nie działa. –