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是用於與Web服務器進行交互的控制台應用程序。這是探索Web API並學習HTTP的來龍去脈的有趣方式。
通過閱讀項目歷史記錄,看看最近發生了變化。
這再容易得多。
$ gem install htty
您需要紅寶石和紅寶石。眾所周知,在OS X下對Ruby v1.8.7,v1.9.2,v1.9.3,v2.0,v2.1和v2.2的運作良好。
您可以用HTTY做的事情是:
以下是一些帶註釋的HTTY會話成績單,可以讓您開始(此處顯示的終端屏幕截圖也可以提供文本形式)。
這個簡單的示例顯示瞭如何使用HTTY探索只讀的Web服務。
您可以指向完整或部分的Web URL。如果您不提供URL,則將使用http://0.0.0.0/(端口80)。您可以根據需要改變協議方案,UserInfo,host,port,路徑,查詢字符串和片段。
htty shell提示顯示當前請求的地址。
get命令是支持的七個HTTP請求方法之一。當您發布請求時,將顯示響應的簡明摘要。
您可以使用follow命令關注重定向。在鍵入諸如get或post類的請求命令之前,不提出請求。
您可以隨意調整地址段。在這裡,我們正在瀏覽該站點的路徑層次結構,您可以使用相對和絕對路徑範圍進行操作。
在這裡,我們添加查詢弦參數。請注意,需要URL編碼的字符會自動編碼URL編碼(除非它們是URL編碼的表達式的一部分)。
headers-response和body-response命令揭示了響應的細節。
Web服務的響應中有一些巡迴賽(水平線,段落參考,經文編號,版權郵票和線路斷裂)。我們通過使用我們與之交談的Web服務提供的API選項來消除它。
我們執行朱莉婭·童車(Julia Child)操縱,並使用address命令更改整個URL,而不是添加單個查詢串線參數。
隨時鍵入quit或擊中CTRL-D,隨時退出會議。
下一個示例演示了HTTY的HTTP安全支持和Cookie功能,以及如何審查和重新訪問過去的請求。
https://方案和端口443暗示著彼此,就像http:// schem和port 80彼此之間一樣。如果省略了計劃或端口,則將默認為適當的值。
請注意,當響應中提供cookie時,響應摘要中會出現大膽的星號(看起來像cookie)。顯示響應標頭時,相同的cookie符號出現在set-cookie標頭旁邊。
cookies-use命令將cookie從響應中復製到下一個請求中。顯示請求標頭時,cookie符號出現在cookie標頭旁邊。
可通過history記錄命令獲得縮寫的歷史記錄。歷史記錄中有關請求的信息包括請求方法,URL,標題數(以及cookie符號,如果發送了cookie)以及身體的大小。有關歷史記錄響應的信息包括響應代碼,標頭數(和cookie符號,如果收到了cookie)以及身體的大小。
請注意,歷史記錄僅包含編號的HTTP請求和響應對,而不是您輸入的所有命令的記錄。
reuse命令副本的副本和正文,供您建立。
現在,我們將查看HTTY的HTTP基本身份驗證支持,並學習如何顯示HTTY會話的無育成績單。
假設我們對Sinatra的默認端口4567有以下Sinatra應用程序。
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'
end該應用程序期望以各種人為的方式發布和發布請求和響應。
當您更改地址的UserInfo部分或整個地址時,會自動為您創建適當的HTTP基本身份驗證標頭。請注意,需要URL編碼的字符會自動編碼URL編碼(除非它們是URL編碼的表達式的一部分)。
在請求中提供UserInfo時,顯示請求標題時,將出現一個大膽的商品符號( @ )(請參見下文)。
鍵入body-set以輸入身體數據,並通過輸入兩個連續的空白線或擊中CTRL-D來終止它。屍體將僅發送郵寄並提出請求。為您創建適當的內容長度標頭(請參見下文)。
不同的響應代碼呈現出暗示其含義的顏色:
與前面所展示的縮寫歷史一樣,冗長的歷史記錄顯示了一個編號的請求列表及其引起的回答。顯示了客戶端和服務器之間交換的所有信息。
您可以從HTTY內學習如何使用HTTY命令。
help命令對命令的縮寫或全名進行可選參數。
在GitHub問題上報告缺陷和功能請求。
歡迎您的補丁,您將在這裡收到歸因。分叉官方的HTTY存儲庫,並發送拉動請求。
克隆存儲庫後, bin/setup安裝依賴項。然後rake以運行測試。您還可以bin/console獲得互動提示,以使您可以進行實驗。
要將此寶石安裝到本地計算機上, bundle exec rake install 。要發布新版本,請更新lib/htty/htty/version.rb中的版本編號,然後bundle exec rake release ,該版本將為版本創建一個git標籤,推送git consits和tags,然後將.gem文件推到rubygems.org。
通過在Twitter上關注@get_htty,與HTTY項目保持聯繫。
您還可以在FreeNode的#HTTY頻道中獲得幫助。
作者尼爾斯·瓊森(Nils Jonsson)欠HTTP-Console項目的靈感債務。
感謝貢獻者(按字母順序排列):
根據MIT許可發布。