s s
.uef^" :8 :8 ..
:d88E .88 .88 @L
`888E :888ooo :888ooo 9888i .dL
888E .z8k -*8888888 -*8888888 `Y888k:*888.
888E~?888L 8888 8888 888E 888I
888E 888E 8888 8888 888E 888I
888E 888E 8888 8888 888E 888I
888E 888E .8888Lu= .8888Lu= 888E 888I
888E 888E ^%888* ^%888* x888N><888'
m888N= 888> 'Y" 'Y" "88" 888
`Y" 888 __ .__ 88F
J88" _/ |_| |__ ____ 98"
@% __ | _/ __ ./"
:" | | | Y ___/ ~`
|__| |___| /___ >
__________/_____/____________________
/ | __ ___/__ ___/______
/ ~ | | | | | ___/
Y /| | | | | |
___|_ / |____| |____| |____|
______/___________________.___.
__ ___/__ ___/__ | |
| | | | / | |
| | | | ____ |
|____| |____| / ______|
/
HTTY adalah aplikasi konsol untuk berinteraksi dengan server web. Ini adalah cara yang menyenangkan untuk menjelajahi API Web dan mempelajari seluk beluk HTTP.
Lihat apa yang diubah akhir -akhir ini dengan membaca sejarah proyek.
Itu tidak bisa jauh lebih mudah.
$ gem install htty
Anda akan membutuhkan Ruby dan Rubygems. Ia diketahui bekerja dengan baik di bawah OS X terhadap Ruby v1.8.7, v1.9.2, v1.9.3, v2.0, v2.1, dan v2.2.
Hal -hal yang dapat Anda lakukan dengan HTTY adalah:
Berikut adalah beberapa transkrip sesi HTTY beranotasi untuk memulai (screenshot terminal yang ditampilkan di sini juga tersedia dalam bentuk tekstual).
Contoh sederhana ini menunjukkan cara menjelajahi layanan web hanya baca dengan HTTY .
Anda dapat menunjuk HTTY di URL Web yang lengkap atau sebagian. Jika Anda tidak menyediakan URL, http://0.0.0.0/ (port 80) akan digunakan. Anda dapat memvariasikan skema protokol, userInfo, host, port, jalur, string kueri, dan fragmen sesuai keinginan.
Prompt HTTY Shell menunjukkan alamat permintaan saat ini.
Perintah get adalah salah satu dari tujuh metode permintaan HTTP yang didukung. Ringkasan ringkas dari respons ditampilkan ketika Anda mengeluarkan permintaan.
Anda dapat mengikuti pengalihan menggunakan perintah follow . Tidak ada permintaan yang dibuat sampai Anda mengetikkan perintah permintaan seperti get atau post .
Anda dapat mengubah segmen alamat sesuka hati. Di sini kami menavigasi hierarki jalur situs, yang dapat Anda lakukan dengan relatif serta pathspec absolut.
Di sini kami menambahkan parameter query-string. Perhatikan bahwa karakter yang memerlukan pengkodean URL secara otomatis dikodekan (kecuali mereka adalah bagian dari ekspresi yang dikodekan URL).
Perintah headers-response dan body-response mengungkapkan detail respons.
Ada beberapa cruft dalam respons layanan web (garis horizontal, referensi bagian, nomor ayat, cap hak cipta, dan istirahat garis). Kami menghilangkannya dengan menggunakan opsi API yang disediakan oleh layanan web yang kami ajak bicara.
Kami melakukan manuver anak Julia dan menggunakan perintah address untuk mengubah seluruh URL, daripada menambahkan parameter string kueri individu satu per satu.
Keluarlah sesi Anda kapan saja dengan mengetik quit atau memukul CTRL-D.
Contoh selanjutnya menunjukkan fitur Dukungan HTTP HTTP dan Cookie HTTY , serta cara meninjau dan meninjau kembali permintaan masa lalu.
Skema dan port 443 https: // menyiratkan satu sama lain, sama seperti skema http: // port 80 menyiratkan satu sama lain. Jika Anda menghilangkan skema atau port, itu akan default ke nilai yang sesuai.
Perhatikan bahwa ketika cookie ditawarkan sebagai tanggapan, tanda bintang yang berani (sepertinya cookie) muncul dalam ringkasan respons. Simbol cookie yang sama muncul di sebelah header set-cookie saat Anda menampilkan header respons.
Perintah cookies-use menyalin cookie dari tanggapan ke permintaan berikutnya. Simbol cookie muncul di sebelah header cookie saat Anda menampilkan header permintaan.
Sejarah singkat tersedia melalui perintah history . Informasi tentang permintaan dalam sejarah termasuk metode permintaan, URL, jumlah header (dan simbol cookie, jika cookie dikirim), dan ukuran tubuh. Informasi tentang tanggapan dalam sejarah termasuk kode respons, jumlah header (dan simbol cookie, jika cookie diterima), dan ukuran tubuh.
Perhatikan bahwa riwayat hanya berisi pasangan permintaan HTTP dan tanggapan bernomor, bukan catatan dari semua perintah yang Anda masukkan.
Perintah reuse membuat salinan header dan badan permintaan sebelumnya untuk Anda bangun.
Sekarang kita akan melihat Dukungan Otentikasi Dasar HTTP HTTY dan pelajari cara menampilkan transkrip Sesi HTTY yang tidak dikabarkan.
Asumsikan bahwa kami memiliki aplikasi Sinatra berikut mendengarkan di port default Sinatra, 4567.
require 'sinatra'
get '/all-good' do
[ 200 , [ [ 'Set-Cookie' , 'foo=bar; baz' ] ] , 'Hello World!' ]
end
put '/huh' do
[ 404 , 'What?' ]
end
delete '/hurl' do
[ 500 , 'Barf!' ]
end
post '/submit-novel' do
redirect '/all-good'
endAplikasi ini mengharapkan permintaan dan memposting dan merespons dengan berbagai cara yang dibuat -buat.
Saat Anda mengubah bagian UserInfo dari alamat, atau seluruh alamat, header otentikasi dasar HTTP yang sesuai dibuat untuk Anda secara otomatis. Perhatikan bahwa karakter yang memerlukan pengkodean URL secara otomatis dikodekan (kecuali mereka adalah bagian dari ekspresi yang dikodekan URL).
Ketika UserInfo disediakan dalam permintaan, simbol Mercantile tebal ( @ ) muncul di sebelah header otorisasi yang dihasilkan ketika Anda menampilkan header permintaan (lihat di bawah).
Ketik body-set untuk memasukkan data tubuh, dan menghentikannya dengan memasukkan dua baris kosong berturut-turut, atau dengan memukul Ctrl-d. Badan hanya akan dikirim untuk posting dan mengajukan permintaan. Header panjang konten yang sesuai dibuat untuk Anda secara otomatis (lihat di bawah).
Kode respons yang berbeda diterjemahkan dengan warna yang menunjukkan maknanya:
Seperti halnya sejarah singkat yang ditunjukkan sebelumnya, riwayat verbose menunjukkan daftar permintaan bernomor dan tanggapan yang ditimbulkannya. Semua informasi yang dipertukarkan antara klien dan server ditampilkan.
Anda dapat belajar cara menggunakan perintah htty dari dalam htty .
Perintah help mengambil argumen opsional dari nama yang disingkat atau lengkap dari suatu perintah.
Laporkan cacat dan permintaan fitur tentang masalah GitHub.
Patch Anda dipersilakan, dan Anda akan menerima atribusi di sini untuk barang -barang bagus. Potong repositori HTTY resmi dan kirim permintaan tarik.
Setelah mengkloning repositori, bin/setup untuk menginstal dependensi. Kemudian rake untuk menjalankan tes. Anda juga dapat bin/console untuk mendapatkan prompt interaktif yang akan memungkinkan Anda untuk bereksperimen.
Untuk memasang permata ini ke mesin lokal Anda, bundle exec rake install . Untuk merilis versi baru, perbarui nomor versi di Lib/htty/version.rb , dan kemudian bundle exec rake release , yang akan membuat tag git untuk versi, tekan Git berkomitmen dan tag, dan tekan file .gem ke rubygems.org.
Tetap berhubungan dengan proyek HTTY dengan mengikuti @get_htty di Twitter.
Anda juga bisa mendapatkan bantuan di saluran #htty di freenode.
Penulis, Nils Jonsson, berutang hutang inspirasi pada proyek HTTP-Console .
Terima kasih kepada kontributor (dalam urutan abjad):
Dirilis di bawah lisensi MIT.