Wyobraź sobie coś takiego:
$ curlsh http://www.example.org
> GET /foo/bar/bam
...output here...
> POST /thing/pool ...
... result here....
czy istnieje narzędzie, które pozwala mi to zrobić?
W wielu systemach Linux / Unix twój pseudokod będzie działał w dowolnej powłoce, chociaż twoje ścieżki powinny być naprawdę pełnymi adresami URL.
Na przykład, w systemach opartych na Debianie, pakiet libwww-perl
instaluje trzy dowiązania do lwp-żądanie, które są nazywane /usr/bin/GET
, /usr/bin/HEAD
i /usr/bin/POST
. Robią to, czego można oczekiwać. Najnowsze wersje pakietu OpenSuse perl-libwww-perl
pomijają dowiązania symboliczne (co prawdopodobnie jest błędem), więc musisz je utworzyć samodzielnie lub użyć lwp-request
bezpośrednio. Ogólnie i przez wiele lat było całkiem bezpieczne założenie, że pliki wykonywalne GET, HEAD i POST są dostępne w systemach unixoid.
Oczywiście możesz również użyć curl
do wszystkich tych zadań, więc być może nie rozumiem, dlaczego uważasz, że powłoka wiersza poleceń, taka jak bash, nie jest interaktywna.
Dziękuję za odpowiedzi.
Po googlingu znalazłem resty , który jest opakowaniem skryptu powłoki wokół narzędzia do zwijania . Tego naprawdę chcę. Ma 155 linii skryptu powłoki, a kiedy go uruchamiam, dostaję funkcje GET, PUT, POST, DELETE i OPTIONS. Te funkcje są tylko opakowaniami wokół programu curl znalezionego na mojej ścieżce.
Działa to tak na MacOSX bash:
$ . resty
$ resty https://api.example.org
https://api.myhost.com*
$ GET /v1/o/orgname -u myusername:password
{
"createdAt" : 1347007133508,
"createdBy" : "admin",
"displayName" : "orgname",
"environments" : [ "test", "prod" ],
"lastModifiedAt" : 1347007133508,
"lastModifiedBy" : "admin",
"name" : "orgname",
"properties" : {
"propertyList" : [ ... ]
},
}
$
Pierwszy wiersz po prostu uruchamia polecenia w bieżącej powłoce.
Następny wiersz, polecenie „resty”, ustawia podstawę adresu URL. Następnie każde wywołanie GET, PUT, POST ... domyślnie odwołuje się do tej bazy. Pokazałem przykład, który emituje prettified JSON. Myślę, że jeśli twój serwer emituje zminimalizowany JSON, możesz go wydrukować za pomocą zewnętrznego skryptu, przesyłając dane wyjściowe.
Istnieje obsługa preferencji opartych na hoście. Załóżmy, że Twoim hostem docelowym jest api.example.org. Utwórz plik o nazwie ~ / .resty / api.example.org i wstaw tam wiersze, które określają argumenty, które powinny być przekazywane do każdego wywołania curl do hosta o tej nazwie. Każdy czasownik http ma własną linię. Tak więc wstawianie tej zawartości do pliku:
GET -u myusername:mypassword --write-out "\nStatus = %{http_code}\n"
... oznacza, że za każdym razem, gdy robię GET, gdy api.example.org jest podstawową nazwą hosta, polecenie curl domyślnie używa wyświetlanych tam argumentów -u
i --write-out
. (-u dla podstawowego uwierzytelnienia).
Jako kolejny przykład możesz podać nagłówek Accept w tym pliku, aby zawsze żądać XML:
GET --header "Accept: application/xml"
Argument linii wiersza polecenia jest obsługiwany w tym pliku preferencji. Wszystkie argumenty curl dla krotki host + czasownik muszą przejść do pojedynczej linii w pliku preferencji.
Poręczny.
lftp:
$ lftp http://repo.xplico.org/pool/
cd ok, cwd=/pool
lftp repo.xplico.org:/pool> ls
drwxr-xr-x -- /
drwxr-xr-x - 2012-02-13 09:48 main
lftp repo.xplico.org:/pool> cd main
lftp repo.xplico.org:/pool/main> ls
drwxr-xr-x -- ..
drwxr-xr-x - 2012-02-13 09:48 x
Listy katalogów działają tylko w przypadku witryn, które wysyłają indeksy katalogów. Ale nawet jeśli nie, nadal możesz użyć get
polecenia, aby uzyskać pojedyncze pliki.
get
Polecenie Pobierz plikcat
wyjściowy będzie plik na ekranie. Aby uzyskać httppost
można użyć coś takiego:quote post post.php x=1&y=z
.Możesz użyć Netcat .
Oto przykład pobrania strony głównej VLC
Reszta kodu HTML jest wysyłana do konsoli. Uwaga: musisz wpisać Return dwa razy później
HTTP/1.0
.źródło
Można użyć interaktywny
shells
zarówno zpython
lubperl
:W Perlu
Zobacz
perldoc WWW::Mechanize::Shell
lub http://search.cpan.org/~corion/WWW-Mechanize-Shell-0.52/lib/WWW/Mechanize/Shell.pmW Pythonie :
Zobacz http://wwwsearch.sourceforge.net/mechanize/
źródło
Tak, możesz użyć opcji „--config”:
Przykład:
źródło
Bardzo lubię rysia do interaktywnego przeglądania w wierszu poleceń. Jest to bardziej pełnoprawna przeglądarka (która pasuje do aplikacji ncurses) niż surowe narzędzie HTML, chociaż ...
Wcześniej testowałem nieprzetworzone polecenia HTML za pomocą protokołu SSL, dla których korzystałem
openssl
, ale pozwala to tylko na jedno polecenie na raz ...Aby uzyskać więcej informacji na temat opcji s_client openssl,
man s_client
zawiera szczegóły.źródło