回答:
多くのLinux / Unixシステムでは、パスは完全なURLである必要がありますが、疑似コードはどのシェルでも機能します。
例えば、Debianベースのシステムでは、パッケージがlibwww-perl
呼ばれているLWP-要求に3つのシンボリックリンクをインストールし/usr/bin/GET
、/usr/bin/HEAD
、と/usr/bin/POST
。これらはあなたが期待することをします。OpenSuseのperl-libwww-perl
パッケージの最近のバージョンでは、シンボリックリンク(おそらくバグ)が省略されているため、自分で作成するか、lwp-request
直接使用する必要があります。一般に、そして長年にわたって、GET、HEAD、およびPOST実行可能ファイルがunixoidシステムで使用可能であるというのは、非常に安全な前提です。
もちろんcurl
、これらすべてのタスクに使用することもできるので、bashなどのコマンドラインシェルがインタラクティブではないと感じる理由を理解していないかもしれません。
答えてくれてありがとう。
周りのグーグルでの後、私が見つかりました。restyシェルスクリプトラッパーである、カールツール。これは本当に私が欲しいものです。これは155行のシェルスクリプトで、実行すると、GET、PUT、POST、DELETE、およびOPTIONSの関数を取得します。これらの関数は、私のパスで見つかったcurlプログラムのラッパーです。
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" : [ ... ]
},
}
$
そこの最初の行は、現在のシェルでコマンドを実行するだけです。
次の行の「resty」コマンドは、URLベースを設定します。その後、GET、PUT、POST ...を呼び出すと、暗黙的にそのベースが参照されます。かっこいいJSONを出力する例を示しました。私はあなたのサーバーが縮小されたJSONを出力するなら、あなたは出力をパイプすることによって外部スクリプトでそれをきれいに印刷できると思います。
ホストベースの設定のサポートがあります。ターゲットホストがapi.example.orgであるとします。〜/ .resty / api.example.orgというファイルを作成し、そこに、その名前でホストへのすべてのcurl呼び出しに渡す必要がある引数を指定する行を挿入します。各http動詞は独自の行を取得します。したがって、このコンテンツをファイルに挿入します。
GET -u myusername:mypassword --write-out "\nStatus = %{http_code}\n"
...これは、api.example.orgがベースホスト名であるときにGETを実行するたびに、curlコマンドはそこに表示される-u
と--write-out
args を暗黙的に使用することを意味します。(基本認証の場合は-u)。
別の例として、そのファイルでAcceptヘッダーを指定して、常にXMLを要求することができます。
GET --header "Accept: application/xml"
そのプリファレンスファイルでは、すべてのcurlコマンドライン引数がサポートされています。host + verbタプルのすべてのcurl引数は、設定ファイルの1行に記述する必要があります。
ハンディ。
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
ディレクトリリストは、ディレクトリインデックスを送信するWebサイトでのみ機能します。ただし、そうでない場合でも、get
コマンドを使用して個々のファイルを取得できます。
Netcatを使用できます。
netcatは、TCPまたはUDPプロトコルを使用して、ネットワーク接続全体でデータを読み書きするシンプルなUNIXユーティリティです。
VLCホームページを取得する例を以下に示します
nc www.videolan.org 80
GET http://www.videolan.org/vlc/ HTTP/1.0
HTTP/1.1 200 OK
Date: Tue, 16 Oct 2012 07:34:48 GMT
Server: Apache/2.2.16 (Debian)
Content-Location: index.html
[…]
HTMLの残りの部分はコンソールに出力されます。注:の後にReturn 2回入力する必要がありHTTP/1.0
ます。
あなたは、インタラクティブに使用できるshells
との両方python
かperl
:
Perl
$ perl -MWWW::Mechanize::Shell -eshell
(no url)> get http://cnn.com
Retrieving http://cnn.com(200)
http://edition.cnn.com/> title
CNN.com International - Breaking, World, Business, Sports, Entertainment and Video News
http://edition.cnn.com/> content
(...)
perldoc WWW::Mechanize::Shell
またはhttp://search.cpan.org/~corion/WWW-Mechanize-Shell-0.52/lib/WWW/Mechanize/Shell.pmを参照してください。
ではPythonの:
$ python -i -c 'import mechanize; br = mechanize.Browser(factory=mechanize.RobustFactory())'
>>> br.open("http://xkcd.com/")
<response_seek_wrapper at 0x2824a28 whose wrapped object = <closeable_response at 0x27c2710 whose fp = <socket._fileobject object at 0x27be3d0>>>
>>> br.title()
'xkcd: Identity'
>>> print br.response().read()
(...)
はい、「-config」オプションを使用できます。
ファイル名を-K、-configに「-」と指定して、curlがstdinからファイルを読み取るようにします。
例:
$ curl -K-
url https://github.com/blog
remote-name
<Ctrl + D>
コマンドラインでインタラクティブなブラウジングをするためのlynxがとても好きです。けれどもそれは、生のHTMLツールというよりは(ncursesアプリケーションに適合する)本格的なブラウザのほうがいいです。
以前にSSLで生のHTMLコマンドをテストしましたが、これにはを使用openssl
しましたが、これは一度に1つのコマンドしか許可しません。
> openssl s_client -quiet -connect google.com:443
GET /
... HTML response
> openssl s_client -quiet -connect myprivateserver.com:443
POST /thing/pool ...
... response
opensslのs_clientオプションman s_client
の詳細については、詳細が含まれています。
get
コマンドは、ファイルのダウンロードしますcat
画面に意志の出力にファイルを。httpを取得するには、post
次のようなものを使用できますquote post post.php x=1&y=z
。